e_utils: Added new e_util_client_layer_validate to check layer for client 33/323533/1
authorJunseok Kim <juns.kim@samsung.com>
Thu, 17 Apr 2025 10:44:38 +0000 (19:44 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 30 Apr 2025 00:26:09 +0000 (09:26 +0900)
Change-Id: I605645ca3a10664be2929657c4ea9e4144db0da4

src/bin/core/e_client.c
src/bin/inputmgr/e_input_thread_client.c
src/bin/utils/e_utils.c
src/bin/utils/e_utils_intern.h
src/bin/windowmgr/e_policy_desk_area.c

index 53979f798ac1b6395567b4421071b22d8ceec689..ebbebc642bac6fe4c686b49b721b985f8c26d041 100644 (file)
@@ -5524,7 +5524,7 @@ e_client_layer_set(E_Client *ec,
    E_OBJECT_TYPE_CHECK_RETURN(ec, E_CLIENT_TYPE, EINA_FALSE);
    if (!ec->frame) return EINA_FALSE;
 
-   if (e_util_client_layer_map(layer) == 9999)
+   if (!e_util_client_layer_validate(layer))
      return EINA_FALSE; //invalid layer is not allowed
 
    data.layer = layer;
index e94783939b815cff14c58c73ed7e2fe2e8429ae0..d9b6439e7fc6cdefc58d8f2c7e17a941b848ab2a 100644 (file)
@@ -424,7 +424,7 @@ E_API E_Input_Thread_Client *e_input_thread_client_above_get(E_Input_Thread_Clie
           }
      }
    if (iec->layer == E_LAYER_CLIENT_CURSOR) return NULL;
-   if (e_util_client_layer_map(iec->layer) == 9999) return NULL;
+   if (!e_util_client_layer_validate(iec->layer)) return NULL;
 
    for (x = e_comp_canvas_layer_map(iec->layer) + 1; x <= e_comp_canvas_layer_map(E_LAYER_CLIENT_CURSOR); x++)
      {
@@ -487,7 +487,7 @@ E_API E_Input_Thread_Client *e_input_thread_client_below_get(E_Input_Thread_Clie
      }
 
    if (iec_layer == E_LAYER_CLIENT_DESKTOP) return NULL;
-   if (e_util_client_layer_map(iec_layer) == 9999) return NULL;
+   if (!e_util_client_layer_validate(iec_layer)) return NULL;
 
    /* go down the layers until we find one */
    x = e_comp_canvas_layer_map(iec_layer);
index ff13683ceaef78af7a06a66807ceeb5cde945dea..afcbc608c848f699864a3465997c874a9a73b4a7 100644 (file)
@@ -522,3 +522,10 @@ e_util_client_layer_map(E_Layer layer)
 
    return 9999;
 }
+
+EINTERN Eina_Bool
+e_util_client_layer_validate(E_Layer layer)
+{
+   if (e_util_client_layer_map(layer) == 9999) return EINA_FALSE;
+   return EINA_TRUE;
+}
index 5904b2161dfe04a04d564e789804758c13598c22..0f4bc8c3f8bf72eac631efe187a3858a936cfa4d 100644 (file)
@@ -57,5 +57,6 @@ EINTERN int e_util_file_monitor_shutdown(void);
 EINTERN int e_util_file_monitor_add(const char *path, void *data);
 
 EINTERN unsigned int e_util_client_layer_map(E_Layer layer);
+EINTERN Eina_Bool    e_util_client_layer_validate(E_Layer layer);
 
 #endif
index db3ab00a88f76f3d8fac3ad77f1beff1423c1ed7..e2af4e9f5842209057707ba3ddd08745518f4558 100644 (file)
@@ -506,7 +506,7 @@ _desk_area_cb_client_get_above(struct wl_listener *listener, void *data)
    e_comp_ec_list_unlock();
 
    if (ec->layer == E_LAYER_CLIENT_CURSOR) return;
-   if (e_util_client_layer_map(ec->layer) == 9999) return;
+   if (!e_util_client_layer_validate(ec->layer)) return;
 
    e_comp_ec_list_lock();;
 
@@ -627,7 +627,7 @@ _desk_area_cb_client_get_below(struct wl_listener *listener, void *data)
      }
 
    if (ec_layer == E_LAYER_CLIENT_DESKTOP) return;
-   if (e_util_client_layer_map(ec_layer) == 9999) return;
+   if (!e_util_client_layer_validate(ec_layer)) return;
 
    /* go down the layers until we find one */
    x = e_comp_canvas_layer_map(ec_layer);
@@ -736,7 +736,7 @@ _desk_area_cb_client_get_visible_above(struct wl_listener *listener, void *data)
    e_comp_ec_list_unlock();
 
    if (ec->layer == E_LAYER_CLIENT_CURSOR) return;
-   if (e_util_client_layer_map(ec->layer) == 9999) return;
+   if (!e_util_client_layer_validate(ec->layer)) return;
 
    e_comp_ec_list_lock();;
 
@@ -2018,7 +2018,7 @@ _desk_area_cb_client_layer_get(struct wl_listener *listener, void *data)
    /* otherwise, client is on unexpected layer */
    ELOGF("LAYER", "layer dismatch ec->layer %d | evas obj layer %d ", ec, ec->layer, layer);
 
-   if (e_util_client_layer_map(layer) == 9999)
+   if (!e_util_client_layer_validate(layer))
      layer_data->layer = E_LAYER_BOTTOM; //not on E_LAYER_CLIENT
 }
 
@@ -2615,7 +2615,7 @@ _desk_area_cb_comp_object_set_layer(struct wl_listener *listener, void *data)
 
 layer_set:
    if (cw->layer == l) return;
-   if (e_util_client_layer_map(layer) == 9999)
+   if (!e_util_client_layer_validate(layer))
      return; //invalid layer for clients not doing comp effects
    if (cw->ec->fullscreen)
      {