e_comp_object: check iconified by client when evas_object_show in intercept_show 88/181988/2
authorJunSeok, Kim <juns.kim@samsung.com>
Tue, 19 Jun 2018 10:43:27 +0000 (19:43 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Mon, 25 Jun 2018 05:01:27 +0000 (05:01 +0000)
There was a bug when ec try to map during iconified by client state.
When client set iconify before first evas_object_show, it doesn't setup their comp object.
Next time client turn to uniconic state, client is invisible in screen.
This patch is move the check iconify by client code to intercept_show from mapping logic to fix problem.

Change-Id: I3a92cba6d9d72a48b176dfbdff5814027476cab3

src/bin/e_comp_object.c
src/bin/e_comp_wl_shell.c

index f9d969e93cec4f1c8495e8b0f6ba0a328a6e410d..e72bc6a6934082c7ea8653dad891b392ffec07dd 100644 (file)
@@ -2148,7 +2148,9 @@ _e_comp_intercept_show_helper(E_Comp_Object *cw)
         if (cw->ec->internal) //internal clients render when they feel like it
           e_comp_object_damage(cw->smart_obj, 0, 0, cw->w, cw->h);
 
-        evas_object_show(cw->smart_obj);
+        if (!cw->ec->exp_iconify.by_client ||
+            e_policy_visibility_client_is_uniconic(cw->ec))
+          evas_object_show(cw->smart_obj);
         if (!cw->ec->iconic)
           e_client_focus_defer_set(cw->ec);
      }
index 60790aa0b9d7e3235b3ce8ca4f41b5d061c23140..96a743058cc8e439ec52e0dd4af5a5a7f108a0f6 100644 (file)
@@ -729,8 +729,7 @@ _e_shell_client_map_common_pre(E_Client *ec)
 
    /* map this surface if needed */
    ec->visible = EINA_TRUE;
-   if (!ec->exp_iconify.by_client)
-     evas_object_show(ec->frame);
+   evas_object_show(ec->frame);
    ec->comp_data->mapped = EINA_TRUE;
 }