diff --git a/ChangeLog b/ChangeLog index 2748eda802..6a5a4c9b7a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-12-06 Richard Hult + + * gdk/quartz/gdkevents-quartz.c: + (synthesize_crossing_events_for_ns_event): Fix warning when + switching spaces in leopard. + 2007-12-06 13:38:36 Tim Janik * tests/floatingtest.c: ported to new testing framework. diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c index 71e8476220..01dea29dca 100644 --- a/gdk/quartz/gdkevents-quartz.c +++ b/gdk/quartz/gdkevents-quartz.c @@ -1172,7 +1172,8 @@ synthesize_crossing_events_for_ns_event (NSEvent *nsevent) /* If there is a window other than the root window at this * position, it means we didn't exit to the root window and we - * ignore the event. + * ignore the event. (Note that we can get NULL here when swithing + * spaces for example.) * * FIXME: This is not enough, it doesn't catch the case where * we leave a GDK window to a non-GDK window that has GDK @@ -1180,9 +1181,12 @@ synthesize_crossing_events_for_ns_event (NSEvent *nsevent) */ mouse_window = _gdk_quartz_window_find_child (_gdk_root, x, y); - if (gdk_window_get_toplevel (mouse_window) == + if (!mouse_window || + gdk_window_get_toplevel (mouse_window) == gdk_window_get_toplevel (current_mouse_window)) - mouse_window = _gdk_root; + { + mouse_window = _gdk_root; + } if (mouse_window == _gdk_root) synthesize_crossing_events (_gdk_root, GDK_CROSSING_NORMAL, nsevent, x, y);