The focus may be changed at E_CLIENT_HOOK_EVAL_END callback.
Change-Id: I578fae83cb52b579d87239bac4e27d6ed6426b17
ec->changes.need_maximize || ec->changes.need_unmaximize;
ec->changes.stack = 0;
+#ifdef REFACTOR_FOCUS_POLICY
+ // This code executes at E_CLIENT_HOOK_EVAL_END callback at e_focus_policy_topmost.c and e_focus_policy_history.c
+#else
if ((!ec->input_only) && (!ec->iconic) &&
((!ec->zone) || e_client_util_desk_visible(ec, e_desk_current_get(ec->zone))) &&
((ec->take_focus) || (ec->want_focus)))
}
else
ec->take_focus = ec->want_focus = 0;
+#endif
if (ec->changes.need_maximize)
{
// TODO:
}
+static void
+_focus_policy_history_hook_cb_client_eval_end(void *data, E_Client *ec)
+{
+ // TODO:
+}
+
static Eina_Bool
_focus_policy_hook_history_cb_comp_object_lower(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_EVAL_END, _focus_policy_history_hook_cb_client_eval_end, history_policy);
// e_comp_object hooks
E_COMP_COMP_HOOK_APPEND(history_policy->co_hooks, E_COMP_OBJECT_HOOK_LOWER, _focus_policy_hook_history_cb_comp_object_lower, history_policy);
// TODO:
}
+static void
+_focus_policy_topmost_hook_cb_client_eval_end(void *data, E_Client *ec)
+{
+ // TODO:
+}
+
static Eina_Bool
_focus_policy_hook_topmost_cb_comp_object_lower(void *data, E_Client *ec)
{
E_LIST_HOOK_APPEND(topmost_policy->ec_hooks, E_CLIENT_HOOK_MOUSE_DOWN, _focus_policy_topmost_hook_cb_client_mouse_down, topmost_policy);
E_LIST_HOOK_APPEND(topmost_policy->ec_hooks, E_CLIENT_HOOK_FOCUS_SET, _focus_policy_topmost_hook_cb_client_focus_set, topmost_policy);
E_LIST_HOOK_APPEND(topmost_policy->ec_hooks, E_CLIENT_HOOK_FOCUS_UNSET, _focus_policy_topmost_hook_cb_client_focus_unset, topmost_policy);
+ E_LIST_HOOK_APPEND(topmost_policy->ec_hooks, E_CLIENT_HOOK_EVAL_END, _focus_policy_topmost_hook_cb_client_eval_end, topmost_policy);
// e_comp_object hooks
E_COMP_COMP_HOOK_APPEND(topmost_policy->co_hooks, E_COMP_OBJECT_HOOK_LOWER, _focus_policy_hook_topmost_cb_comp_object_lower, topmost_policy);