e_policy: add E_EVENT_CLIENT_ZONE_SET callback function 78/295678/1
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 6 Jul 2023 05:58:22 +0000 (14:58 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 12 Jul 2023 09:06:12 +0000 (18:06 +0900)
In that function, pc->zone can be changed.

Change-Id: Ia046f2dd0c0f718880649a543745fd1024ce8478

src/bin/e_policy.c

index 4862a02..d81b9b1 100644 (file)
@@ -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);