From: Doyoun Kang Date: Tue, 12 Nov 2019 01:20:23 +0000 (+0900) Subject: e_service_quickpanel: fix bug for sending quickpanel_state message X-Git-Tag: submit/tizen/20191112.105927~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e31db3dfa4779dcfd94329e4b73d23abcda97ae5;p=platform%2Fupstream%2Fenlightenment.git e_service_quickpanel: fix bug for sending quickpanel_state message There was a bug that the window could not hide an indicator after closing the quickpanel in multi window case. This was because the window which opened the quickpanel could not get the aux message "quickpanel_state", "hidden" after closing quickpanel. Change-Id: I8e4ffe500b13ff1b6e015430103464cc11646cd3 --- diff --git a/src/bin/services/e_service_quickpanel.c b/src/bin/services/e_service_quickpanel.c index 50b3807bbc..6a825cb2c0 100644 --- a/src/bin/services/e_service_quickpanel.c +++ b/src/bin/services/e_service_quickpanel.c @@ -129,6 +129,8 @@ struct _E_Policy_Quickpanel { int x, y, w, h; } geom; + + E_Client *gesture_target; }; struct _Mover_Data @@ -586,6 +588,21 @@ _e_qp_srv_effect_finish_job_end(E_Policy_Quickpanel *qp) e_policy_aux_message_send(qp->below, "quickpanel_state", "hidden", NULL); } + if (qp->gesture_target) + { + if ((qp->gesture_target != focused) && + (qp->gesture_target != qp->below)) + { + if (qp->effect.final_visible_state) + e_policy_aux_message_send(qp->gesture_target, "quickpanel_state", "shown", NULL); + else + { + e_policy_aux_message_send(qp->gesture_target, "quickpanel_state", "hidden", NULL); + qp->gesture_target = NULL; + } + } + } + EC_CHANGED(qp->ec); } @@ -1066,6 +1083,8 @@ _region_obj_cb_gesture_start(void *data, Evas_Object *handler, int nfingers, int if (focused) e_policy_aux_message_send(focused, "quickpanel_state", "moving", NULL); + qp->gesture_target = focused; + if ((qp->below) && (qp->below != focused)) e_policy_aux_message_send(qp->below, "quickpanel_state", "moving", NULL); @@ -1680,6 +1699,9 @@ _quickpanel_cb_client_remove(void *data, int type, void *event) if (qp->below == ev->ec) qp->below = NULL; + if (qp->gesture_target == ev->ec) + qp->gesture_target = NULL; + if (!stopping) _quickpanel_below_change_eval(data, event); end: