diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 808354c4ae..9cf2ef7ca6 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -1035,11 +1035,12 @@ do_show_window (GdkSurface *window, gboolean hide_window) static void send_crossing_event (GdkDisplay *display, - GdkSurface *window, + GdkDevice *physical_device, + GdkSurface *window, GdkEventType type, GdkCrossingMode mode, GdkNotifyType notify_type, - GdkSurface *subwindow, + GdkSurface *subwindow, POINT *screen_pt, GdkModifierType mask, guint32 time_) @@ -1075,7 +1076,7 @@ send_crossing_event (GdkDisplay *display, pt.y / impl->surface_scale, mode, notify_type); - + _gdk_win32_append_event (event); } @@ -1118,8 +1119,9 @@ find_common_ancestor (GdkSurface *win1, void synthesize_crossing_events (GdkDisplay *display, - GdkSurface *src, - GdkSurface *dest, + GdkDevice *physical_device, + GdkSurface *src, + GdkSurface *dest, GdkCrossingMode mode, POINT *screen_pt, GdkModifierType mask, @@ -1152,6 +1154,7 @@ synthesize_crossing_events (GdkDisplay *display, else notify_type = GDK_NOTIFY_ANCESTOR; send_crossing_event (display, + physical_device, a, GDK_LEAVE_NOTIFY, mode, notify_type, @@ -1171,6 +1174,7 @@ synthesize_crossing_events (GdkDisplay *display, while (win != c && win != NULL) { send_crossing_event (display, + physical_device, win, GDK_LEAVE_NOTIFY, mode, notify_type, @@ -1213,6 +1217,7 @@ synthesize_crossing_events (GdkDisplay *display, next = b; send_crossing_event (display, + physical_device, win, GDK_ENTER_NOTIFY, mode, notify_type, @@ -1232,6 +1237,7 @@ synthesize_crossing_events (GdkDisplay *display, notify_type = GDK_NOTIFY_INFERIOR; send_crossing_event (display, + physical_device, b, GDK_ENTER_NOTIFY, mode, notify_type, @@ -2244,6 +2250,7 @@ gdk_event_translate (MSG *msg, } synthesize_crossing_events (display, + _gdk_device_manager->system_pointer, implicit_grab_surface, new_window, GDK_CROSSING_UNGRAB, &msg->pt, @@ -2308,6 +2315,7 @@ gdk_event_translate (MSG *msg, mouse_window ? GDK_SURFACE_HWND (mouse_window) : NULL, new_window ? GDK_SURFACE_HWND (new_window) : NULL)); synthesize_crossing_events (display, + _gdk_device_manager->system_pointer, mouse_window, new_window, GDK_CROSSING_NORMAL, &msg->pt, @@ -2400,6 +2408,7 @@ gdk_event_translate (MSG *msg, if (!ignore_leave) synthesize_crossing_events (display, + _gdk_device_manager->system_pointer, mouse_window, new_window, GDK_CROSSING_NORMAL, &msg->pt,