[gtk: 6/8] broadway: Keep popups above their parent



commit b74a26b275819719a5f8b71ed0f9cc30236eb4c0
Author: Alexander Larsson <alexl redhat com>
Date:   Fri Mar 13 14:35:43 2020 +0100

    broadway: Keep popups above their parent
    
    We set the parent as a "transient parent" for popups, which means
    they will not be stacked below the parent.

 gdk/broadway/gdksurface-broadway.c | 11 +++++++++++
 1 file changed, 11 insertions(+)
---
diff --git a/gdk/broadway/gdksurface-broadway.c b/gdk/broadway/gdksurface-broadway.c
index bb3acf2f98..9dcf3f14f1 100644
--- a/gdk/broadway/gdksurface-broadway.c
+++ b/gdk/broadway/gdksurface-broadway.c
@@ -273,6 +273,13 @@ _gdk_broadway_display_create_surface (GdkDisplay     *display,
 
   connect_frame_clock (surface);
 
+  /* We treat the real parent as a default transient for to get stacking right */
+  if (parent)
+    {
+      impl->transient_for = GDK_BROADWAY_SURFACE (parent)->id;
+      _gdk_broadway_server_surface_set_transient_for (broadway_display->server, impl->id, 
impl->transient_for);
+    }
+
   return surface;
 }
 
@@ -670,6 +677,10 @@ gdk_broadway_surface_set_transient_for (GdkSurface *surface,
 
   impl = GDK_BROADWAY_SURFACE (surface);
 
+  /* We treat the real parent as a default transient for to get stacking right */
+  if (parent == NULL)
+    parent = surface->parent;
+
   parent_id = 0;
   if (parent)
     parent_id = GDK_BROADWAY_SURFACE (parent)->id;


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