From 00164bf2b92edc84fe62e1080a2c643d4f1d4135 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Fri, 10 Apr 2020 13:24:59 +0900 Subject: [PATCH] e_client/e_comp_object: skip changing transient child's stack when it is unmaped Change-Id: Ic308271d011cb8e9457b69abd181a37f6b9925d8 --- src/bin/e_client.c | 6 ++++++ src/bin/e_comp_object.c | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index b2bf8e8622..c6287bf6ab 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2261,6 +2261,12 @@ _e_client_cb_evas_restack(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA /* Don't stack vkbd if parent is splitted */ if (child->vkbd.vkbd && ec->layout.splited) continue; + if (child->comp_data && !child->comp_data->mapped) + { + ELOGF("COMP", "STACK CHANGE CHILD. BUT not mapped. skip. child(ec:%p, win:0x%08zx)", ec, child, e_client_util_win_get(child)); + continue; + } + /* Don't stack iconic transients. If the user wants these shown, * that's another option. */ diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 1ef45d0ef2..bcfaef2625 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -1718,7 +1718,14 @@ layer_set: */ e_config->transient.raise = 1; EINA_LIST_FREE(list, child) - evas_object_layer_set(child->frame, layer); + { + if (child->comp_data && !child->comp_data->mapped) + { + ELOGF("COMP", "LAYER_SET CHILD. BUT not mapped. skip. child(ec:%p, win:0x%08zx)", cw->ec, child, e_client_util_win_get(child)); + continue; + } + evas_object_layer_set(child->frame, layer); + } } if (!cw->ec->override) { -- 2.34.1