From 799682abe67a7aa06f467145c016cf9baf35a88b Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Thu, 6 Jul 2023 14:58:22 +0900 Subject: [PATCH] e_policy: add E_EVENT_CLIENT_ZONE_SET callback function In that function, pc->zone can be changed. Change-Id: Ia046f2dd0c0f718880649a543745fd1024ce8478 --- src/bin/e_policy.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/bin/e_policy.c b/src/bin/e_policy.c index 4862a02..d81b9b1 100644 --- a/src/bin/e_policy.c +++ b/src/bin/e_policy.c @@ -1387,6 +1387,34 @@ _e_policy_cb_client_hide(void *data EINA_UNUSED, int type EINA_UNUSED, void *eve } static Eina_Bool +_e_policy_cb_client_zone_set(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) +{ + E_Event_Client_Zone_Set *ev; + E_Policy_Client *pc; + + ev = event; + + pc = eina_hash_find(hash_policy_clients, &ev->ec); + if (!pc) + goto end; + + if (pc->ec != ev->ec) + goto end; + + if (pc->zone == ev->zone) + goto end; + + ELOGF("CBHM", "Change Zone | e_policy %p old(%p) new(%p)", + ev->ec, pc, pc->zone, ev->zone); + + pc->zone = ev->zone; + +end: + return ECORE_CALLBACK_PASS_ON; +} + + +static Eina_Bool _e_policy_cb_idle_enterer(void *data EINA_UNUSED) { E_Zone *zone; @@ -2299,6 +2327,7 @@ e_policy_init(void) E_LIST_HANDLER_APPEND(handlers, E_EVENT_CLIENT_VISIBILITY_CHANGE, _e_policy_cb_client_vis_change, NULL); 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_LIST_HANDLER_APPEND(handlers, E_EVENT_CLIENT_ZONE_SET, _e_policy_cb_client_zone_set, 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); -- 2.7.4