diff options
author | Richard Hult <richard@imendio.com> | 2008-03-25 13:49:03 +0000 |
---|---|---|
committer | Richard Hult <rhult@src.gnome.org> | 2008-03-25 13:49:03 +0000 |
commit | 9d8b846e8088676f3c47d39546d883109a7bdec3 (patch) | |
tree | 77a71225d5655d7d9d38b167a7abd62ed3e5c505 /gdk/quartz | |
parent | 727993933189f5be38264c96ad240cf61b0f3596 (diff) | |
download | gtk+-9d8b846e8088676f3c47d39546d883109a7bdec3.tar.gz |
Bail out early if we can't find a matching window.
2008-03-25 Richard Hult <richard@imendio.com>
* 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.
svn path=/trunk/; revision=19934
Diffstat (limited to 'gdk/quartz')
-rw-r--r-- | gdk/quartz/gdkevents-quartz.c | 2 | ||||
-rw-r--r-- | gdk/quartz/gdkwindow-quartz.c | 5 |
2 files changed, 5 insertions, 2 deletions
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; |