deiconify_approve: change deiconify_approve condition 60/140160/1 accepted/tizen/3.0/common/20170725.114350 accepted/tizen/3.0/ivi/20170724.221224 accepted/tizen/3.0/mobile/20170724.221210 accepted/tizen/3.0/tv/20170724.221219 accepted/tizen/3.0/wearable/20170724.221230 submit/tizen_3.0/20170724.053209
authorJuyeon Lee <juyeonne.lee@samsung.com>
Tue, 11 Jul 2017 03:49:56 +0000 (12:49 +0900)
committerJuyeon Lee <juyeonne.lee@samsung.com>
Mon, 24 Jul 2017 05:00:32 +0000 (14:00 +0900)
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

index df07444715e841819308d424dbd2ee2900fe1aa5..4595f22cdf8006cbb06b6000bab7ff7540c6c864 100644 (file)
@@ -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;