From 8927a280bb749d7bf87958a72910c058fe13101f Mon Sep 17 00:00:00 2001 From: Juyeon Lee Date: Tue, 11 Jul 2017 12:49:56 +0900 Subject: [PATCH] deiconify_approve: change deiconify_approve condition add job to wait client's deiconify render commit when it meets below condition 1st: if cfg->use_buffer_flush is 1(to save memory) 2nd: if cfg->deiconify_approve is 1, than add job even use_buffer_flush is 0 3rd: if hint deiconify_update is 1, than add job even above configs are all 0 Change-Id: I6a6c7aca36e5bd164397a13f084c411c0b93b2fb --- src/bin/e_policy_visibility.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/src/bin/e_policy_visibility.c b/src/bin/e_policy_visibility.c index df07444715..4595f22cdf 100644 --- a/src/bin/e_policy_visibility.c +++ b/src/bin/e_policy_visibility.c @@ -990,11 +990,18 @@ _e_vis_client_prepare_foreground_signal_emit(E_Vis_Client *vc) static Eina_Bool _e_vis_client_is_uniconify_render_necessary(E_Vis_Client *vc) { - if (vc->disable_uniconify_render) + if (!e_config->use_buffer_flush) { - VS_INF(vc->ec, "Disabled deiconify rendering"); + E_Client *ec = NULL; + if (vc) ec = vc->ec; + if (ec && ec->exp_iconify.deiconify_update) // hint or conf->deiconify_approve set deiconify update 1 + goto need_deiconify_render; + + VS_INF(ec, "Not necessary deiconify rendering"); return EINA_FALSE; } + +need_deiconify_render: if (_e_vis_client_is_uniconic(vc)) { VS_INF(vc->ec, "Already uniconic state"); @@ -1509,13 +1516,12 @@ e_policy_visibility_client_raise(E_Client *ec) Eina_List *l; Eina_Bool ret = EINA_FALSE; - if (!e_config->use_buffer_flush) return EINA_FALSE; E_VIS_CLIENT_GET_OR_RETURN_VAL(vc, ec, EINA_FALSE); VS_DBG(ec, "API ENTRY | RAISE"); - if (!ec->iconic) + if (!ec->iconic && !ec->exp_iconify.deiconify_update) return EINA_FALSE; if (ec->exp_iconify.by_client) @@ -1540,8 +1546,6 @@ e_policy_visibility_client_raise(E_Client *ec) E_API Eina_Bool e_policy_visibility_client_lower(E_Client *ec) { - if (!e_config->use_buffer_flush) return EINA_FALSE; - E_VIS_CLIENT_GET_OR_RETURN_VAL(vc, ec, EINA_FALSE); VS_DBG(ec, "API ENTRY | LOWER"); @@ -1574,8 +1578,6 @@ e_policy_visibility_client_lower(E_Client *ec) E_API Eina_Bool e_policy_visibility_client_iconify(E_Client *ec) { - if (!e_config->use_buffer_flush) return EINA_FALSE; - E_VIS_CLIENT_GET_OR_RETURN_VAL(vc, ec, EINA_FALSE); VS_DBG(ec, "API ENTRY | ICONIFY"); @@ -1613,10 +1615,8 @@ e_policy_visibility_client_uniconify(E_Client *ec, Eina_Bool raise) Eina_List *l; Eina_Bool ret = EINA_FALSE; - if (!e_config->use_buffer_flush) return EINA_FALSE; - E_VIS_CLIENT_GET_OR_RETURN_VAL(vc, ec, EINA_FALSE); - if (!ec->iconic) + if (!ec->iconic && !ec->exp_iconify.deiconify_update) return EINA_FALSE; VS_DBG(ec, "API ENTRY | UNICONIFY"); @@ -1650,8 +1650,6 @@ e_policy_visibility_client_activate(E_Client *ec) Eina_List *l; Eina_Bool ret = EINA_FALSE; - if (!e_config->use_buffer_flush) return EINA_FALSE; - E_VIS_CLIENT_GET_OR_RETURN_VAL(vc, ec, EINA_FALSE); VS_DBG(ec, "API ENTRY | ACTIVATE"); @@ -1678,8 +1676,6 @@ e_policy_visibility_client_activate(E_Client *ec) E_API Eina_Bool e_policy_visibility_client_layer_lower(E_Client *ec, E_Layer layer) { - if (!e_config->use_buffer_flush) return EINA_FALSE; - E_VIS_CLIENT_GET_OR_RETURN_VAL(vc, ec, EINA_FALSE); VS_DBG(ec, "API ENTRY | LAYER LOWER (layer:%d)", layer); @@ -1766,9 +1762,6 @@ e_policy_visibility_init(void) { E_Client *ec; - if (!e_config->use_buffer_flush) - return EINA_FALSE; - INF("Init Visibility Module"); if (pol_vis) return EINA_TRUE; -- 2.34.1