}
#endif
-static E_Policy_Client *
-_e_policy_client_add(E_Client *ec)
-{
- E_Policy_Client *pc;
-
- if (e_object_is_del(E_OBJECT(ec))) return NULL;
-
- pc = eina_hash_find(hash_policy_clients, &ec);
- if (pc) return pc;
-
- pc = E_NEW(E_Policy_Client, 1);
- if (!pc) return NULL;
-
- pc->ec = ec;
- pc->zone = e_comp_zone_find_by_ec(ec);
-
- eina_hash_add(hash_policy_clients, &ec, pc);
-
-#ifdef REFACTOR_ZONE_DESK
- // This client_add hook of desk will be deleted at the hook callback for it.
- _e_policy_desk_client_add_hook_add(pc);
-#endif
-
- return pc;
-}
-
static void
_e_policy_client_del(E_Policy_Client *pc)
{
}
static void
-_e_policy_cb_hook_client_new_post(void *d EINA_UNUSED, E_Client *ec)
-{
- if (EINA_UNLIKELY(!ec))
- return;
-
- _e_policy_client_add(ec);
-}
-
-static void
_e_policy_cb_hook_client_del(void *d EINA_UNUSED, E_Client *ec)
{
E_Policy_Client *pc;
e_policy_wl_defer_job();
}
+EINTERN E_Policy_Client *
+e_policy_client_add(E_Client *ec)
+{
+ E_Policy_Client *pc;
+
+ if (e_object_is_del(E_OBJECT(ec))) return NULL;
+
+ pc = eina_hash_find(hash_policy_clients, &ec);
+ if (pc) return pc;
+
+ pc = E_NEW(E_Policy_Client, 1);
+ if (!pc) return NULL;
+
+ pc->ec = ec;
+ pc->zone = e_comp_zone_find_by_ec(ec);
+
+ eina_hash_add(hash_policy_clients, &ec, pc);
+
+#ifdef REFACTOR_ZONE_DESK
+ // This client_add hook of desk will be deleted at the hook callback for it.
+ _e_policy_desk_client_add_hook_add(pc);
+#endif
+
+ return pc;
+}
+
EINTERN int
e_policy_init(void)
{
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);
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);