e_policy: send iconify when uniconify_by_vis job canceled 48/257048/3
authorJunseok, Kim <juns.kim@samsung.com>
Mon, 19 Apr 2021 01:47:24 +0000 (10:47 +0900)
committerJunSeok Kim <juns.kim@samsung.com>
Mon, 19 Apr 2021 05:09:44 +0000 (05:09 +0000)
If the client's uniconify job is canceled by the enlightenment, the client's internal
state remains "Uniconic state" till the enlightenment send an iconic state change event.

In this situation, black screen can appear if the client is visible again.
This is because the client know its state is "uniconic" and doesn't render anymore.

To fix this, we add code that enlightenment sends an iconic state change event to client
to change its internal iconic state when the uniconify_by_vis job is canceled.

Change-Id: If2e71769cd622cfdb11aba0c655ea46a35bcb497
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
src/bin/e_policy.c

index 750dde2d611796abd43abaf855fe0f6093bcdf01..852ea4228dcacc5f153268ca85b1240ce1be26d8 100644 (file)
@@ -904,6 +904,8 @@ _e_policy_cb_hook_client_visibility(void *d EINA_UNUSED, E_Client *ec)
                {
                   ELOGF("POL_VIS", "cancel uniconify by visibility job", ec);
                   e_policy_visibility_client_uniconify_by_visibility_job_cancel(ec);
+                  if ((ec->iconic == 1) && (ec->exp_iconify.last_sent_iconic == 0))
+                    e_policy_wl_iconify_state_change_send(ec, 1);
                }
              e_policy_client_visibility_send(ec);
              e_policy_client_iconify_by_visibility(ec);