diff --git a/ChangeLog b/ChangeLog index 5159ce7c0f..2e70115e12 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2008-03-25 Richard Hult + + * gdk/quartz/gdkevents-quartz.c: + (_gdk_quartz_events_trigger_crossing_events): Bail out early if we + can't find a matching window. + + * gdk/quartz/gdkwindow-quartz.c: (show_window_internal): Add a + comment, and only trigger an event for non-temp windows, fixes + problems for tooltips caused by the workarounds for the + problematic tracking rect API. + 2008-03-25 Richard Hult * gdk/quartz/gdkwindow-quartz.c: diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c index 6d3165220c..dc7701b6fd 100644 --- a/gdk/quartz/gdkevents-quartz.c +++ b/gdk/quartz/gdkevents-quartz.c @@ -1109,7 +1109,7 @@ _gdk_quartz_events_trigger_crossing_events (void) y = _gdk_quartz_window_get_inverted_screen_y (point.y); mouse_window = _gdk_quartz_window_find_child (_gdk_root, x, y); - if (mouse_window == _gdk_root) + if (!mouse_window || mouse_window == _gdk_root) return; /* NSMouseEntered always happens on the toplevel. */ diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c index 6aec5e1a4f..ddf2e81cdc 100644 --- a/gdk/quartz/gdkwindow-quartz.c +++ b/gdk/quartz/gdkwindow-quartz.c @@ -1137,7 +1137,10 @@ show_window_internal (GdkWindow *window, if (impl->transient_for && !GDK_WINDOW_DESTROYED (impl->transient_for)) _gdk_quartz_window_attach_to_parent (window); - if (impl->toplevel) + /* Create a crossing event for managed windows that pop up under the + * mouse. Part of the workarounds for problems with the tracking rect API. + */ + if (impl->toplevel && private->window_type != GDK_WINDOW_TEMP) _gdk_quartz_events_trigger_crossing_events (); GDK_QUARTZ_RELEASE_POOL;