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; --