From e09153cdb91b078dec63de25ec8c976236719423 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Sat, 27 Jul 2024 12:56:43 +0900 Subject: [PATCH] e_client: add E_CLIENT_INTERCEPT_HOOK_LAYOUT_GEOMETRY_SET hook Change-Id: I00d35691f4c3fc615aeb129a8fb31a12ddd948da --- src/bin/core/e_client.c | 8 ++++++++ src/include/e_client.h | 1 + 2 files changed, 9 insertions(+) diff --git a/src/bin/core/e_client.c b/src/bin/core/e_client.c index d0f6e82..b08a89f 100644 --- a/src/bin/core/e_client.c +++ b/src/bin/core/e_client.c @@ -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); } diff --git a/src/include/e_client.h b/src/include/e_client.h index 4b4d67e..1002590 100644 --- a/src/include/e_client.h +++ b/src/include/e_client.h @@ -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; -- 2.7.4