Clear the toplevel ordering list in all places where the order is

2008-02-17  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkwindow-quartz.c: (show_window_internal),
	(_gdk_quartz_window_detach_from_parent),
	(_gdk_quartz_window_attach_to_parent), (gdk_window_focus): Clear
	the toplevel ordering list in all places where the order is
	potentially changed. Fixes mouse focus issues for windows with
	a transient parent set.

svn path=/trunk/; revision=19604
This commit is contained in:
Richard Hult 2008-02-17 10:01:52 +00:00 committed by Richard Hult
parent c17e6f1fa2
commit 8a37bb9364
2 changed files with 13 additions and 0 deletions

View File

@ -1,3 +1,12 @@
2008-02-17 Richard Hult <richard@imendio.com>
* gdk/quartz/gdkwindow-quartz.c: (show_window_internal),
(_gdk_quartz_window_detach_from_parent),
(_gdk_quartz_window_attach_to_parent), (gdk_window_focus): Clear
the toplevel ordering list in all places where the order is
potentially changed. Fixes mouse focus issues for windows with
a transient parent set.
2008-02-17 Richard Hult <richard@imendio.com> 2008-02-17 Richard Hult <richard@imendio.com>
* gdk/quartz/gdkevents-quartz.c * gdk/quartz/gdkevents-quartz.c

View File

@ -1078,6 +1078,7 @@ show_window_internal (GdkWindow *window,
private->window_type != GDK_WINDOW_TEMP); private->window_type != GDK_WINDOW_TEMP);
[(GdkQuartzWindow*)impl->toplevel showAndMakeKey:make_key]; [(GdkQuartzWindow*)impl->toplevel showAndMakeKey:make_key];
clear_toplevel_order ();
} }
else else
{ {
@ -1123,6 +1124,7 @@ _gdk_quartz_window_detach_from_parent (GdkWindow *window)
parent_impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (impl->transient_for)->impl); parent_impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (impl->transient_for)->impl);
[parent_impl->toplevel removeChildWindow:impl->toplevel]; [parent_impl->toplevel removeChildWindow:impl->toplevel];
clear_toplevel_order ();
} }
} }
@ -1144,6 +1146,7 @@ _gdk_quartz_window_attach_to_parent (GdkWindow *window)
parent_impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (impl->transient_for)->impl); parent_impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (impl->transient_for)->impl);
[parent_impl->toplevel addChildWindow:impl->toplevel ordered:NSWindowAbove]; [parent_impl->toplevel addChildWindow:impl->toplevel ordered:NSWindowAbove];
clear_toplevel_order ();
} }
} }
@ -2311,6 +2314,7 @@ gdk_window_focus (GdkWindow *window,
{ {
GDK_QUARTZ_ALLOC_POOL; GDK_QUARTZ_ALLOC_POOL;
[impl->toplevel makeKeyAndOrderFront:impl->toplevel]; [impl->toplevel makeKeyAndOrderFront:impl->toplevel];
clear_toplevel_order ();
GDK_QUARTZ_RELEASE_POOL; GDK_QUARTZ_RELEASE_POOL;
} }
} }