summaryrefslogtreecommitdiff
path: root/gdk/quartz
diff options
context:
space:
mode:
authorRichard Hult <richard@imendio.com>2008-03-25 13:49:03 +0000
committerRichard Hult <rhult@src.gnome.org>2008-03-25 13:49:03 +0000
commit9d8b846e8088676f3c47d39546d883109a7bdec3 (patch)
tree77a71225d5655d7d9d38b167a7abd62ed3e5c505 /gdk/quartz
parent727993933189f5be38264c96ad240cf61b0f3596 (diff)
downloadgtk+-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.c2
-rw-r--r--gdk/quartz/gdkwindow-quartz.c5
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;