From bf6ba1b003f3ab2ab1eabab8ade64e0bca9a0ac7 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 31 Mar 2016 14:05:47 -0400 Subject: [PATCH] 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 c69b49b37..c78f0b5bf 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 5290d3d40..ab6c43830 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;