From: Doyoun Kang Date: Thu, 22 Mar 2018 08:25:31 +0000 (+0900) Subject: e_policy_visibility: send pre-unobscured event to below window when the window is... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2e57dd35e7fedac51b9419fc38ae5ed5afb6544c;p=platform%2Fupstream%2Fenlightenment.git e_policy_visibility: send pre-unobscured event to below window when the window is hiding Change-Id: Ibe8ca4a0c04a611207116c2258cefbb56209729f --- diff --git a/src/bin/e_policy_visibility.c b/src/bin/e_policy_visibility.c index 3c6ffab953..79ed44ad45 100644 --- a/src/bin/e_policy_visibility.c +++ b/src/bin/e_policy_visibility.c @@ -1300,7 +1300,7 @@ _e_vis_client_check_send_pre_visibility(E_Vis_Client *vc, Eina_Bool raise) } static Eina_Bool -_e_vis_client_add_uniconify_render_pending(E_Vis_Client *vc, E_Vis_Job_Type type, Eina_Bool raise) +_e_vis_client_add_uniconify_render_pending(E_Vis_Client *vc, E_Vis_Job_Type type, Eina_Bool raise, Eina_Bool force_send) { E_Client *ec; Eina_Bool send_vis_event = EINA_TRUE; @@ -1331,7 +1331,9 @@ _e_vis_client_add_uniconify_render_pending(E_Vis_Client *vc, E_Vis_Job_Type type if (_e_vis_client_is_uniconify_render_running(vc)) goto end; - send_vis_event = _e_vis_client_check_send_pre_visibility(vc, raise); + if (!force_send) + send_vis_event = _e_vis_client_check_send_pre_visibility(vc, raise); + if (send_vis_event) { ELOGF("POL_VIS", "SEND pre-unobscured visibility event", ec->pixmap, ec); @@ -1619,7 +1621,7 @@ _e_vis_ec_below_uniconify(E_Client *ec) e_vis_client_send_pre_visibility_event(below_ec); } - job_added = _e_vis_client_add_uniconify_render_pending(below, E_VIS_JOB_TYPE_UNICONIFY_BY_VISIBILITY, 0); + job_added = _e_vis_client_add_uniconify_render_pending(below, E_VIS_JOB_TYPE_UNICONIFY_BY_VISIBILITY, 0, EINA_TRUE); if (!job_added) { @@ -1945,7 +1947,7 @@ e_policy_visibility_client_raise(E_Client *ec) if (ec->exp_iconify.by_client) return EINA_FALSE; - ret = _e_vis_client_add_uniconify_render_pending(vc, E_VIS_JOB_TYPE_UNICONIFY, 1); + ret = _e_vis_client_add_uniconify_render_pending(vc, E_VIS_JOB_TYPE_UNICONIFY, 1, EINA_FALSE); /* uniconify its transients recursively */ if (e_config->transient.raise) @@ -2056,9 +2058,9 @@ e_policy_visibility_client_uniconify(E_Client *ec, Eina_Bool raise) * suppose that transients will be above on the parent. */ if (raise) - ret = _e_vis_client_add_uniconify_render_pending(vc, E_VIS_JOB_TYPE_UNICONIFY, raise); + ret = _e_vis_client_add_uniconify_render_pending(vc, E_VIS_JOB_TYPE_UNICONIFY, raise, EINA_FALSE); else - ret = _e_vis_client_add_uniconify_render_pending(vc, E_VIS_JOB_TYPE_UNICONIFY_BY_VISIBILITY, raise); + ret = _e_vis_client_add_uniconify_render_pending(vc, E_VIS_JOB_TYPE_UNICONIFY_BY_VISIBILITY, raise, EINA_FALSE); /* uniconify its transients recursively */ if (e_config->transient.iconify) @@ -2085,7 +2087,7 @@ e_policy_visibility_client_activate(E_Client *ec) VS_DBG(ec, "API ENTRY | ACTIVATE"); - ret = _e_vis_client_add_uniconify_render_pending(vc, E_VIS_JOB_TYPE_ACTIVATE, 1); + ret = _e_vis_client_add_uniconify_render_pending(vc, E_VIS_JOB_TYPE_ACTIVATE, 1, EINA_FALSE); /* TODO search clients to be foreground * suppose that transients will be above on the parent. */