e_policy: add e_policy at E_CLIENT_HOOK_NEW_CLIENT_POST instead of E_CLIENT_HOOK_NEW_... 76/295676/1
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 6 Jul 2023 05:27:08 +0000 (14:27 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 12 Jul 2023 09:06:12 +0000 (18:06 +0900)
The callback of E_CLIENT_HOOK_NEW_CLIENT_POST knows the zone to which the e_client belongs.

Change-Id: I0487729512d31986b04797ee6ee6dd4aa4542235

src/bin/e_policy.c
src/bin/e_policy.h

index c82a26d..5f5b5d8 100644 (file)
@@ -142,6 +142,7 @@ _e_policy_client_add(E_Client *ec)
    if (!pc) return NULL;
 
    pc->ec = ec;
+   pc->zone = e_comp_zone_find_by_ec(ec);
 
    eina_hash_add(hash_policy_clients, &ec, pc);
 
@@ -464,10 +465,11 @@ _e_policy_desk_get_by_num(unsigned int zone_num, int x, int y)
    return NULL;
 }
 
-
 static void
-_e_policy_cb_hook_client_new(void *d EINA_UNUSED, E_Client *ec)
+_e_policy_cb_hook_client_new_post(void *d EINA_UNUSED, E_Client *ec)
 {
+   E_Policy_Client *pc;
+
    if (EINA_UNLIKELY(!ec))
      return;
 
@@ -2247,7 +2249,7 @@ e_policy_init(void)
    E_LIST_HANDLER_APPEND(handlers, E_EVENT_CLIENT_SHOW,               _e_policy_cb_client_show,                     NULL);
    E_LIST_HANDLER_APPEND(handlers, E_EVENT_CLIENT_HIDE,               _e_policy_cb_client_hide,                     NULL);
 
-   E_CLIENT_HOOK_APPEND(hooks_ec,  E_CLIENT_HOOK_NEW_CLIENT,          _e_policy_cb_hook_client_new,                 NULL);
+   E_CLIENT_HOOK_APPEND(hooks_ec,  E_CLIENT_HOOK_NEW_CLIENT_POST,     _e_policy_cb_hook_client_new_post,            NULL);
    E_CLIENT_HOOK_APPEND(hooks_ec,  E_CLIENT_HOOK_DEL,                 _e_policy_cb_hook_client_del,                 NULL);
    E_CLIENT_HOOK_APPEND(hooks_ec,  E_CLIENT_HOOK_EVAL_PRE_NEW_CLIENT, _e_policy_cb_hook_client_eval_pre_new_client, NULL);
    E_CLIENT_HOOK_APPEND(hooks_ec,  E_CLIENT_HOOK_EVAL_PRE_FETCH,      _e_policy_cb_hook_client_eval_pre_fetch,      NULL);
index 8dc67ad..7f2cfa7 100644 (file)
@@ -108,6 +108,8 @@ struct _E_Policy_Desk
 struct _E_Policy_Client
 {
    E_Client        *ec;
+   E_Zone          *zone;
+
    struct
    {
       E_Maximize    maximized;