[mutter] stack: Don't place Wayland popups in o-r layer



commit 666bef7af94eb7b49859b5abfbc8856319495b12
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Wed Oct 17 13:45:28 2018 +0200

    stack: Don't place Wayland popups in o-r layer
    
    Placing persistant Wayland popups (e.g. not menus etc) in the o-r layer
    breaks stacking order with other window trees (e.g. other client
    windows), as the menu would get stuck in the o-r layer, i.e. on top,
    even if the parent of the popup got lowered.
    
    Fix this by placing the popups in the normal layer, relying on
    transient-ness to keep stacking correct.

 src/core/stack.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
---
diff --git a/src/core/stack.c b/src/core/stack.c
index 28fd94c54..619d27a49 100644
--- a/src/core/stack.c
+++ b/src/core/stack.c
@@ -305,7 +305,17 @@ get_standalone_layer (MetaWindow *window)
     case META_WINDOW_NOTIFICATION:
     case META_WINDOW_COMBO:
     case META_WINDOW_OVERRIDE_OTHER:
-      layer = META_LAYER_OVERRIDE_REDIRECT;
+      switch (window->client_type)
+        {
+        case META_WINDOW_CLIENT_TYPE_X11:
+          layer = META_LAYER_OVERRIDE_REDIRECT;
+          break;
+        case META_WINDOW_CLIENT_TYPE_WAYLAND:
+          layer = META_LAYER_NORMAL;
+          break;
+        default:
+          g_assert_not_reached ();
+        }
       break;
     default:
       if (window->wm_state_below)


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