diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2016-03-31 14:05:47 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2016-03-31 14:05:47 -0400 |
commit | 607975ccc0270ecc1633f3ca57fa36d9477d05ea (patch) | |
tree | 1103fa5e9aad44944a5f61166f2d5dedc6249492 | |
parent | 336721e693f2e7d1e1796ba06345ab1bd6927a04 (diff) | |
download | enlightenment-607975ccc0270ecc1633f3ca57fa36d9477d05ea.tar.gz |
enforce wl xdg popup stacking relative to parent stacking
-rw-r--r-- | src/bin/e_comp_wl.c | 6 | ||||
-rw-r--r-- | src/modules/wl_desktop_shell/e_mod_main.c | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 58cc5ab4da..af84ef4609 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -554,6 +554,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 d24121b601..7818cd1009 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; |