[gtk+/client-side-windows: 90/284] Restack native window after reparent put it on top



commit cdb405dfcf0c91bb2c6987617dfc9c1191119539
Author: Alexander Larsson <alexl redhat com>
Date:   Mon Jan 19 14:56:30 2009 +0100

    Restack native window after reparent put it on top
---
 gdk/gdkwindow.c |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 1b61a15..50cc817 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -1162,7 +1162,23 @@ gdk_window_reparent (GdkWindow *window,
 
   if (do_reparent_to_impl)
     reparent_to_impl (private);
-  
+  else
+    {
+      GdkWindowObject *above;
+      GList listhead = {0};
+      
+      /* The reparent will have put the native window topmost in the native parent,
+       * which may be wrong wrt other native windows in the non-native hierarchy,
+       * so restack */
+      above = find_native_sibling_above (private->parent, private);
+      if (above)
+	{
+	  listhead.data = window;
+	  GDK_WINDOW_IMPL_GET_IFACE (private->impl)->restack_under ((GdkWindow *)above,
+								    &listhead);
+	}
+    }
+
   if (show)
     gdk_window_show_unraised (window);
   else



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]