e_client/e_comp_object: skip changing transient child's stack when it is unmaped 53/230453/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Fri, 10 Apr 2020 04:24:59 +0000 (13:24 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Fri, 10 Apr 2020 04:24:59 +0000 (13:24 +0900)
Change-Id: Ic308271d011cb8e9457b69abd181a37f6b9925d8

src/bin/e_client.c
src/bin/e_comp_object.c

index b2bf8e862275ac4d72144be1bb014af7b24943b1..c6287bf6ab9db41735e4e78f3f6dc60499443fa3 100644 (file)
@@ -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.
               */
index 1ef45d0ef247ce2302c2053203500fc1cba6fd93..bcfaef2625bb44afe2e75559682c0c31ca341037 100644 (file)
@@ -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)
      {