e_policy: send iconify when uniconify_by_vis job canceled 62/257062/1 accepted/tizen_6.0_unified accepted/tizen/6.0/unified/20210420.073341 submit/tizen_6.0/20210419.054842
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:48:06 +0000 (05:48 +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 7969f1270222f929b1d22a39ec667e1e0cdc71bc..99ae1c3363aabe4fc53abfc602b03e80936a9197 100644 (file)
@@ -899,6 +899,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);