[E_COMP_OBJECT_HOOK_LOWER] = NULL,
[E_COMP_OBJECT_HOOK_MOVE] = NULL,
[E_COMP_OBJECT_HOOK_SHOW] = NULL,
+ [E_COMP_OBJECT_HOOK_HIDE] = NULL,
//#endif
};
#ifdef REFACTOR_FOCUS_POLICY
&& (hookpoint != E_COMP_OBJECT_HOOK_LOWER) &&
(hookpoint != E_COMP_OBJECT_HOOK_MOVE) &&
- (hookpoint != E_COMP_OBJECT_HOOK_SHOW)
+ (hookpoint != E_COMP_OBJECT_HOOK_SHOW) &&
+ (hookpoint != E_COMP_OBJECT_HOOK_HIDE)
#endif
)
{
/* hidden flag = just do it */
ELOGF("COMP", "Hide hidden evas_object:%p", cw->ec, obj);
evas_object_hide(obj);
+#ifdef REFACTOR_FOCUS_POLICY
+ _e_comp_object_hook_call(E_COMP_OBJECT_HOOK_HIDE, cw->ec);
+#endif
return;
}
/* input_only = who cares */
ELOGF("COMP", "Hide input_only evas_object:%p", cw->ec, obj);
evas_object_hide(obj);
+#ifdef REFACTOR_FOCUS_POLICY
+ _e_comp_object_hook_call(E_COMP_OBJECT_HOOK_HIDE, cw->ec);
+#endif
return;
}
/* already hidden or currently animating */
cw->defer_hide = 0;
ELOGF("COMP", "Hide normal object:%p", cw->ec, obj);
evas_object_hide(obj);
+#ifdef REFACTOR_FOCUS_POLICY
+ _e_comp_object_hook_call(E_COMP_OBJECT_HOOK_HIDE, cw->ec);
+#endif
}
static void
if (cw->frame_object)
edje_object_play_set(cw->frame_object, 0);
}
+#ifdef REFACTOR_FOCUS_POLICY
+ // This executes with E_COMP_OBJECT_HOOK_HIDE callback at e_focus_policy_history.c
+#else
/* ensure focus-out */
if (cw->ec->focused &&
(e_config->focus_policy_ext != E_FOCUS_EXT_TOP_STACK))
e_client_frame_focus_set(cw->ec, EINA_FALSE);
e_client_focus_defer_unset(cw->ec);
}
+#endif
e_comp_render_queue(); //force nocomp recheck
TRACE_DS_END();
return EINA_TRUE;
}
+static Eina_Bool
+_focus_policy_history_hook_cb_comp_object_hide(void *data, E_Client *ec)
+{
+ // TODO:
+
+ return EINA_TRUE;
+}
+
static void
_focus_policy_history_del(E_Focus_Policy_Impl *impl)
{
E_COMP_COMP_HOOK_APPEND(history_policy->co_hooks, E_COMP_OBJECT_HOOK_LOWER, _focus_policy_hook_history_cb_comp_object_lower, history_policy);
E_COMP_COMP_HOOK_APPEND(history_policy->co_hooks, E_COMP_OBJECT_HOOK_MOVE, _focus_policy_history_hook_cb_comp_object_move, history_policy);
E_COMP_COMP_HOOK_APPEND(history_policy->co_hooks, E_COMP_OBJECT_HOOK_SHOW, _focus_policy_history_hook_cb_comp_object_show, history_policy);
+ E_COMP_COMP_HOOK_APPEND(history_policy->co_hooks, E_COMP_OBJECT_HOOK_HIDE, _focus_policy_history_hook_cb_comp_object_hide, history_policy);
return policy_iface;