e_policy_visibility: reset vc->state to ICONIC while canceling visibility job 24/270224/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Wed, 26 Jan 2022 07:05:01 +0000 (16:05 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Thu, 27 Jan 2022 00:43:00 +0000 (09:43 +0900)
There was a bug that the window's iconic_state_change event didn't send to the client
in _e_vis_client_add_uniconify_render_pending. This was because the vc->state was
remained to E_VIS_ICONIFY_STATE_RUNNING_UNICONIFY_RENDER_DONE.
This can be occurred when the uniconify_by_visibility job is canceled.

To resolve this problem, we add code to set the vc->state to E_VIS_ICONIFY_STATE_ICONIC
in uniconify_by_visibility job cancel function.

Change-Id: Ie2873be552b15cb3216f1d1dcc3f587807769cb4

src/bin/e_policy_visibility.c

index da9430c41f0fcdd3d16888b73f77458e053c6e16..5226b311302600ae32b0fc59cfb559410930698b 100644 (file)
@@ -2325,6 +2325,12 @@ e_policy_visibility_client_uniconify_by_visibility_job_cancel(E_Client *ec)
    VS_INF(ec, "Find and Cancel Uniconify by visibility job...");
    ret = _e_vis_job_cancel(vc, E_VIS_JOB_TYPE_UNICONIFY_BY_VISIBILITY);
 
+   if (e_policy_visibility_client_is_uniconify_render_running(ec))
+     {
+        vc->state = E_VIS_ICONIFY_STATE_ICONIC;
+        VS_INF(vc->ec, "UPDATE ICONIC STATE: %s", STATE_STR(vc));
+     }
+
    if (!_e_vis_job_is_grabbed(vc, E_VIS_JOB_TYPE_ALL ^ E_VIS_JOB_TYPE_UNICONIFY_BY_VISIBILITY))
      {
         vc->state = E_VIS_ICONIFY_STATE_ICONIC;