discomfitor pushed a commit to branch enlightenment-0.20.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=bf6ba1b003f3ab2ab1eabab8ade64e0bca9a0ac7

commit bf6ba1b003f3ab2ab1eabab8ade64e0bca9a0ac7
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Thu Mar 31 14:05:47 2016 -0400

    enforce wl xdg popup stacking relative to parent stacking
---
 src/bin/e_comp_wl.c                       | 6 ++++++
 src/modules/wl_desktop_shell/e_mod_main.c | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index c69b49b..c78f0b5 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -555,6 +555,12 @@ _e_comp_wl_evas_cb_restack(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EIN
    Eina_List *l, *ll;
 
    if (e_object_is_del(E_OBJECT(ec))) return;
+   if (e_client_has_xwindow(ec)) return;
+   EINA_LIST_FOREACH(ec->transients, l, sec)
+     {
+        evas_object_layer_set(sec->frame, evas_object_layer_get(ec->frame));
+        evas_object_stack_above(sec->frame, ec->frame);
+     }
    if (!ec->comp_data->sub.list) return;
    EINA_LIST_FOREACH(ec->comp_data->sub.list, l, sec)
      evas_object_layer_set(sec->frame, evas_object_layer_get(ec->frame));
diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index 5290d3d..ab6c438 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -63,6 +63,8 @@ _e_shell_surface_parent_set(E_Client *ec, struct wl_resource 
*parent_resource)
      {
         pc->transients = eina_list_append(pc->transients, ec);
         ec->parent = pc;
+        evas_object_layer_set(ec->frame, evas_object_layer_get(pc->frame));
+        evas_object_stack_above(ec->frame, pc->frame);
      }
 
    ec->icccm.fetch.transient_for = EINA_TRUE;

-- 


Reply via email to