e_policy_visibility: do not below_iconify when ec is transparent 58/256458/2
authorJunseok, Kim <juns.kim@samsung.com>
Fri, 2 Apr 2021 07:08:12 +0000 (16:08 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Tue, 6 Apr 2021 07:46:29 +0000 (07:46 +0000)
No need to below uniconify if the lower / hide window is transparent.
Because of below windows are already uniconic state.

Change-Id: I1c94ae0080e9fd97d075cb6ab7669cfbc13b9b38
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
src/bin/e_policy_visibility.c

index eba44e32d29d736af71f055838361d38cfb7f53e..7922738ab628025efe0bb70475e02c3edc1e7eb2 100644 (file)
@@ -2184,6 +2184,12 @@ _e_vis_intercept_hide(void *data EINA_UNUSED, E_Client *ec)
         return EINA_FALSE;
      }
 
+   if (ec->argb)
+     {
+        VS_DBG(ec, "Window is transparent.");
+        pending = EINA_FALSE;
+     }
+
    if (_e_vis_client_is_below_uniconify_skip(vc))
      {
         VS_DBG(ec, "Skip to uniconify below client");
@@ -2392,6 +2398,12 @@ e_policy_visibility_client_lower(E_Client *ec)
    /* if vc has job grab, release them */
    _e_vis_client_grab_cancel(vc);
 
+   if (ec->argb)
+     {
+        VS_DBG(ec, "Window is transparent.");
+        ret = EINA_FALSE;
+     }
+
    above_vis_type = _e_vis_ec_above_visible_type(ec, EINA_TRUE);
    if (above_vis_type == E_POL_VIS_TYPE_NON_ALPHA)
      {
@@ -2431,6 +2443,12 @@ e_policy_visibility_client_iconify(E_Client *ec)
    /* if vc has job grab, release them */
    _e_vis_client_grab_cancel(vc);
 
+   if (ec->argb)
+     {
+        VS_DBG(ec, "Window is transparent.");
+        return EINA_FALSE;
+     }
+
    if (ec->iconic) return EINA_FALSE;
 
    above_vis_type = _e_vis_ec_above_visible_type(ec, EINA_TRUE);
@@ -2568,6 +2586,12 @@ e_policy_visibility_client_layer_lower(E_Client *ec, E_Layer layer)
    /* if vc has job grab, release them */
    _e_vis_client_grab_cancel(vc);
 
+   if (ec->argb)
+     {
+        VS_DBG(ec, "Window is transparent.");
+        return EINA_FALSE;
+     }
+
    above_vis_type = _e_vis_ec_above_visible_type(ec, EINA_TRUE);
    if (above_vis_type == E_POL_VIS_TYPE_NON_ALPHA)
      {