The focus may be changed at E_CLIENT_HOOK_FOCUS_DEFER_SET callback.
Change-Id: I3bfd75102f58f66017fca51eaf3dc7fdf7e48015
[E_CLIENT_HOOK_MOUSE_IN] = NULL,
[E_CLIENT_HOOK_MOUSE_OUT] = NULL,
[E_CLIENT_HOOK_MOUSE_DOWN] = NULL,
+ [E_CLIENT_HOOK_FOCUS_DEFER_SET] = NULL,
//#endif
};
e_client_focus_defer_set(E_Client *ec)
{
EINA_SAFETY_ON_NULL_RETURN(ec);
+#ifdef REFACTOR_FOCUS_POLICY
+ _e_client_hook_call(E_CLIENT_HOOK_FOCUS_DEFER_SET, ec);
+#else
if (e_config->focus_policy_ext == E_FOCUS_EXT_TOP_STACK) return;
ELOGF("FOCUS", "focus defer set", ec);
defer_focus_stack = eina_list_remove(defer_focus_stack, ec);
defer_focus_stack = eina_list_prepend(defer_focus_stack, ec);
+#endif
}
EINTERN void
E_CLIENT_HOOK_MOUSE_IN,
E_CLIENT_HOOK_MOUSE_OUT,
E_CLIENT_HOOK_MOUSE_DOWN,
+ E_CLIENT_HOOK_FOCUS_DEFER_SET,
//#endif
E_CLIENT_HOOK_LAST,
} E_Client_Hook_Point;
// TODO:
}
+static void
+_focus_policy_history_hook_cb_client_focus_defer_set(void *data, E_Client *ec)
+{
+ // TODO:
+}
+
static void
_focus_policy_history_hook_cb_client_eval_end(void *data, E_Client *ec)
{
E_LIST_HOOK_APPEND(history_policy->ec_hooks, E_CLIENT_HOOK_MOUSE_DOWN, _focus_policy_history_hook_cb_client_mouse_down, history_policy);
E_LIST_HOOK_APPEND(history_policy->ec_hooks, E_CLIENT_HOOK_FOCUS_SET, _focus_policy_history_hook_cb_client_focus_set, history_policy);
E_LIST_HOOK_APPEND(history_policy->ec_hooks, E_CLIENT_HOOK_FOCUS_UNSET, _focus_policy_history_hook_cb_client_focus_unset, history_policy);
+ E_LIST_HOOK_APPEND(history_policy->ec_hooks, E_CLIENT_HOOK_FOCUS_DEFER_SET, _focus_policy_history_hook_cb_client_focus_defer_set, history_policy);
E_LIST_HOOK_APPEND(history_policy->ec_hooks, E_CLIENT_HOOK_EVAL_END, _focus_policy_history_hook_cb_client_eval_end, history_policy);
// e_comp_object hooks