1 --- a/gdk/win32/gdkevents-win32.c 2008-10-17 05:06:36.000000000 +0100
2 +++ b/gdk/win32/gdkevents-win32.c 2008-11-23 14:56:17.000000000 +0000
4 RECT rect, *drag, orig_drag;
12 @@ -2855,8 +2855,15 @@
13 point.x = GET_X_LPARAM (msg->lParam);
14 point.y = GET_Y_LPARAM (msg->lParam);
16 - if ((hwnd = WindowFromPoint (point)) == NULL)
18 + /* Find our toplevel window */
19 + hwnd = GetAncestor (msg->hwnd, GA_ROOT);
21 + /* Walk back up to the outermost child at the desired point */
23 + ScreenToClient (hwnd, &point);
24 + hwndc = ChildWindowFromPoint (hwnd, point);
25 + ClientToScreen (hwnd, &point);
26 + } while (hwndc != hwnd && (hwnd = hwndc, 1));
29 if ((new_window = gdk_win32_handle_table_lookup ((GdkNativeWindow) msg->hwnd)) == NULL)