e_service_quickpanel: change focus set method to latest_set for ensure qp is focusable 33/253633/2
authorJunseok, Kim <juns.kim@samsung.com>
Mon, 8 Feb 2021 12:38:34 +0000 (21:38 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Wed, 17 Feb 2021 07:56:04 +0000 (07:56 +0000)
To ensure quickpanel is focusable, use e_client_focus_latest_set for give focus to quickpanel instead of e_client_frame_focus_set.
and added condition check of quickpanel's evas_object is visible.

Change-Id: I043de2f002d562b4019ef70b40fb7df1d820f12f
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
(cherry picked from commit 860558d3a53e837739dfa9e2ee8dc9fe7cb19acd)

src/bin/services/e_service_quickpanel.c

index 9b6800c2ac5c507f3551c788898b782c8d6ad32e..dce18371b6d4f492610a46add18d8be65e0ca849 100644 (file)
@@ -637,10 +637,11 @@ _e_qp_srv_effect_finish_job_end(E_Policy_Quickpanel *qp)
    if (qp->effect.final_visible_state)
      {
         if ((!qp->ec->focused) &&
-            (qp->ec->icccm.accepts_focus || qp->ec->icccm.take_focus))
+            (qp->ec->icccm.accepts_focus || qp->ec->icccm.take_focus) &&
+            (evas_object_visible_get(qp->ec->frame) == EINA_TRUE))
           {
              ELOGF("QUICKPANEL", "effect finished but not focused. focus set to quickpanel", qp->ec);
-             e_client_frame_focus_set(qp->ec, EINA_TRUE);
+             e_client_focus_latest_set(qp->ec);
           }
      }
 
@@ -759,10 +760,11 @@ _e_qp_srv_effect_finish_job_stop(E_Policy_Quickpanel *qp)
      {
         if ((qp->ec) &&
             (!qp->ec->focused) &&
-            (qp->ec->icccm.accepts_focus || qp->ec->icccm.take_focus))
+            (qp->ec->icccm.accepts_focus || qp->ec->icccm.take_focus) &&
+            (evas_object_visible_get(qp->ec->frame) == EINA_TRUE))
           {
              ELOGF("QUICKPANEL", "effect finished but not focused. focus set to quickpanel", qp->ec);
-             e_client_frame_focus_set(qp->ec, EINA_TRUE);
+             e_client_focus_latest_set(qp->ec);
           }
      }
 }