visibility: Added API in order to disable deiconify rendering and make it settable... 80/91280/2
authorSeunghun Lee <shiin.lee@samsung.com>
Thu, 6 Oct 2016 11:22:07 +0000 (20:22 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Fri, 7 Oct 2016 07:42:27 +0000 (00:42 -0700)
Added New API
e_policy_visibility_deiconify_render_disable_set(E_Client *ec, Eina_Bool disable)

Change-Id: I496e2a5ec4843cdeb4c69113faf2cac81edc5cf1

src/bin/e_policy_visibility.c
src/bin/e_policy_visibility.h
src/bin/e_policy_visibility_internal.h
src/bin/e_policy_wl.c

index dbb5ecc660e4d1fe8779aa934ad8b9e037a36263..957cb4c937c15cdf9f5788c67adcebabe0c84177 100644 (file)
@@ -850,6 +850,9 @@ _e_vis_client_uniconify(E_Vis_Client *vc, E_Vis_Job_Type type, Eina_Bool raise)
 
    ec = vc->ec;
 
+   if (vc->disable_uniconify_render)
+     return EINA_FALSE;
+
    if (_e_vis_client_is_uniconic(vc))
      return EINA_FALSE;
 
@@ -1289,6 +1292,14 @@ e_policy_visibility_client_activate(E_Client *ec)
    return ret;
 }
 
+E_API void
+e_policy_visibility_uniconify_render_disable_set(E_Client *ec, Eina_Bool disable)
+{
+   E_VIS_CLIENT_GET_OR_RETURN(vc, ec);
+   VS_DBG(ec, "API ENTRY | Disable uniconify render");
+   vc->disable_uniconify_render = !!disable;
+}
+
 E_API Eina_Bool
 e_policy_visibility_init(void)
 {
index d821ad772d9fc523fbe90357c65488ac8c158da5..47a5f479165390d455a035a442ad3fbb4a5258be 100644 (file)
@@ -14,5 +14,6 @@ E_API Eina_Bool                   e_policy_visibility_client_uniconify(E_Client
 E_API Eina_Bool                   e_policy_visibility_client_activate(E_Client *ec);
 E_API E_Vis_Grab                 *e_policy_visibility_client_grab_get(E_Client *ec, const char *name);
 E_API void                        e_policy_visibility_client_grab_release(E_Vis_Grab *grab);
+E_API void                        e_policy_visibility_uniconify_render_disable_set(E_Client *ec, Eina_Bool disable);
 
 #endif
index f5a012633bd90b41bc6842d6281ab3662b746362..1537fb2a0cbd96823aa6a6204cd7095957bb292c 100644 (file)
@@ -145,6 +145,7 @@ struct _E_Vis_Client
       Eina_List   *grab_list;
    } job;
    Eina_Bool prepare_emitted;
+   Eina_Bool disable_uniconify_render;
 };
 
 struct _E_Vis_Job_Group
index 302a66f34678d9cc48dc66efac0a98955bcb257a..ab728aa24e0b1ea6c76eddc93e8f88a12aaffed4 100644 (file)
@@ -2094,7 +2094,14 @@ _e_policy_wl_aux_hint_apply(E_Client *ec)
           }
         else if (!strcmp(hint->hint, hint_names[E_POLICY_HINT_DEICONIFY_APPROVE_DISABLE]))
           {
-             /* TODO: would implement after deiconify approve protocol provided */
+             Eina_Bool disable;
+
+             if (!strcmp(hint->val, "1"))
+               disable = EINA_TRUE;
+             else
+               disable = EINA_FALSE;
+
+             e_policy_visibility_uniconify_render_disable_set(ec, disable);
           }
         else if (!strcmp(hint->hint, hint_names[E_POLICY_HINT_GESTURE_DISABLE]))
           {