split_screen_manager: check desk_area is enabled before assign client to region 34/292034/4
authorJunseok Kim <juns.kim@samsung.com>
Wed, 26 Apr 2023 04:25:18 +0000 (13:25 +0900)
committerJunseok Kim <juns.kim@samsung.com>
Thu, 27 Apr 2023 04:44:59 +0000 (13:44 +0900)
Change-Id: Idde308e6d45f9877efb5fc969eeffdf1355b7c5a

src/splitscreen/e_mod_split_screen_manager.c

index 98bf297..946fcb6 100644 (file)
@@ -112,6 +112,9 @@ _e_mod_split_screen_manager_cb_hook_eval_fetch(void *data, E_Client *ec)
         SSMINF("ec is NULL", NULL);
         return;
      }
+
+   if (!ec->desk->desk_area.enable) return;
+
    // TODO: FIX blinking issue while launching child window
    _e_mod_split_screen_manager_ec_relocate(ec);
 
@@ -164,6 +167,8 @@ _e_mod_split_screen_manager_cb_ec_add(void *data EINA_UNUSED, int type EINA_UNUS
    ev = event;
    if (!ev) return ECORE_CALLBACK_PASS_ON;
 
+   if (!ev->ec->desk->desk_area.enable) return ECORE_CALLBACK_PASS_ON;
+
    _e_mod_split_screen_manager_ec_relocate(ev->ec);
 
    return ECORE_CALLBACK_PASS_ON;
@@ -312,6 +317,8 @@ _e_mod_split_screen_manager_hint_deactivate(E_Client *ec, const char *name, cons
 static void
 _e_mod_split_screen_manager_client_manager_role_set(E_Client *ec, Eina_Bool set)
 {
+   E_Desk *desk;
+
    if (!ec) return;
    if (ec->floating == set) return;
 
@@ -325,7 +332,10 @@ _e_mod_split_screen_manager_client_manager_role_set(E_Client *ec, Eina_Bool set)
              ec->floating_saved_layer = ec->layer;
              e_client_layer_set(ec, E_LAYER_CLIENT_ABOVE);
              ec->netwm.type = E_WINDOW_TYPE_UTILITY;
-             _e_mod_split_screen_manager_ec_assign_to_region_name(ec, "above");
+
+             desk = e_desk_current_get(e_zone_current_get());
+             if (desk && desk->desk_area.enable)
+               _e_mod_split_screen_manager_ec_assign_to_region_name(ec, "above");
           }
         else
           {