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
This commit is contained in:
Richard Hult 2008-03-25 13:49:03 +00:00 committed by Richard Hult
parent 7279939331
commit 9d8b846e80
3 changed files with 16 additions and 2 deletions

View File

@ -1,3 +1,14 @@
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.
2008-03-25 Richard Hult <richard@imendio.com>
* gdk/quartz/gdkwindow-quartz.c:

View File

@ -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. */

View File

@ -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;