e_client: add MAXIMIZE/UNMAXMIZE intercept hook 93/315393/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Sat, 27 Jul 2024 06:12:23 +0000 (15:12 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 31 Jul 2024 08:07:33 +0000 (17:07 +0900)
We add new intercept hooks as below
- E_CLIENT_INTERCEPT_HOOK_MAXIMIZE
- E_CLIENT_INTERCEPT_HOOK_UNMAXIMIZE

Change-Id: I2436dc29999c99718c667ba470d6498edd717197

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

index b08a89f..f386fad 100644 (file)
@@ -226,6 +226,8 @@ 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,
+   [E_CLIENT_INTERCEPT_HOOK_MAXIMIZE] = NULL,
+   [E_CLIENT_INTERCEPT_HOOK_UNMAXIMIZE] = NULL,
 };
 
 ///////////////////////////////////////////
@@ -4140,6 +4142,12 @@ e_client_maximize(E_Client *ec, E_Maximize max)
         return;
      }
 
+   if (!_e_client_intercept_hook_call(E_CLIENT_INTERCEPT_HOOK_MAXIMIZE, ec))
+     {
+        ELOGF("COMP", "E_CLIENT_INTERCEPT_HOOK_MAXIMIZE Intercepted", ec);
+        return;
+     }
+
    if (!ec->fullscreen)
      {
         // call the maximize hook of a client
@@ -4180,6 +4188,12 @@ e_client_unmaximize(E_Client *ec, E_Maximize max)
    /* Can only remove existing maximization directions */
    if (!max) return;
 
+   if (!_e_client_intercept_hook_call(E_CLIENT_INTERCEPT_HOOK_UNMAXIMIZE, ec))
+     {
+        ELOGF("COMP", "E_CLIENT_INTERCEPT_HOOK_UNMAXIMIZE Intercepted", ec);
+        return;
+     }
+
    if (!ec->fullscreen)
      {
         // call the unmaximize hook of a client
index 1002590..407408f 100644 (file)
@@ -301,6 +301,8 @@ 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_MAXIMIZE,
+   E_CLIENT_INTERCEPT_HOOK_UNMAXIMIZE,
    E_CLIENT_INTERCEPT_HOOK_LAST,
 } E_Client_Intercept_Hook_Point;