e_client: add E_CLIENT_INTERCEPT_HOOK_LAYOUT_GEOMETRY_SET hook 68/315368/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Sat, 27 Jul 2024 03:56:43 +0000 (12:56 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 31 Jul 2024 02:20:02 +0000 (11:20 +0900)
Change-Id: I00d35691f4c3fc615aeb129a8fb31a12ddd948da

src/bin/core/e_client.c
src/include/e_client.h

index d0f6e82..b08a89f 100644 (file)
@@ -225,6 +225,7 @@ static Eina_Inlist *_e_client_intercept_hooks[] =
 {
    [E_CLIENT_INTERCEPT_HOOK_FOCUS_REVERT] = NULL,
    [E_CLIENT_INTERCEPT_HOOK_AUTO_PLACEMENT] = NULL,
+   [E_CLIENT_INTERCEPT_HOOK_LAYOUT_GEOMETRY_SET] = NULL,
 };
 
 ///////////////////////////////////////////
@@ -4236,8 +4237,15 @@ e_client_layout_set(E_Client *ec, uint32_t num_cols, uint32_t num_rows, uint32_t
 
    e_client_layout_geometry_set(ec, x, y, w, h);
    e_client_layout_apply(ec, EINA_TRUE);
+   if (!_e_client_intercept_hook_call(E_CLIENT_INTERCEPT_HOOK_LAYOUT_GEOMETRY_SET, ec))
+     {
+        ELOGF("POL", "E_CLIENT_INTERCEPT_HOOK_LAYOUT_GEOMETRY_SET Intercepted.", ec);
+        goto end;
+     }
+
    e_client_frame_geometry_set(ec, x, y, w, h);
 
+end:
    if (!ec->visible)
      e_client_shell_configure_send(ec, 0, w, h);
 }
index 4b4d67e..1002590 100644 (file)
@@ -300,6 +300,7 @@ typedef enum _E_Client_Intercept_Hook_Point
 {
    E_CLIENT_INTERCEPT_HOOK_FOCUS_REVERT,
    E_CLIENT_INTERCEPT_HOOK_AUTO_PLACEMENT,
+   E_CLIENT_INTERCEPT_HOOK_LAYOUT_GEOMETRY_SET,
    E_CLIENT_INTERCEPT_HOOK_LAST,
 } E_Client_Intercept_Hook_Point;