The focus may be changed at E_COMP_OBJECT_HOOK_MOVE callback.
Change-Id: I9fe6e2d54a89c022850d5adaf5ea0c006454a064
ec->pre_cb.x = x; ec->pre_cb.y = y;
+#ifdef REFACTOR_FOCUS_POLICY
+ // This code is executed at E_COMP_OBJECT_HOOK_MOVE callback
+ // at e_focus_policy_topmost.c and at e_focus_policy_history.c
+#else
if (ec->focused)
{
if (!E_INTERSECTS(ec->x, ec->y, ec->w, ec->h,
e_client_revert_focus(ec);
}
}
+#endif
e_comp_visibility_calculation_set(EINA_TRUE);
}
[E_COMP_OBJECT_HOOK_RENDER_UPDATE_LOCK_SET] = NULL,
//#ifdef REFACTOR_FOCUS_POLICY
[E_COMP_OBJECT_HOOK_LOWER] = NULL,
+ [E_COMP_OBJECT_HOOK_MOVE] = NULL,
//#endif
};
(hookpoint != E_COMP_OBJECT_HOOK_MASK_OBJECT_UNSET) &&
(hookpoint != E_COMP_OBJECT_HOOK_RENDER_UPDATE_LOCK_SET)
#ifdef REFACTOR_FOCUS_POLICY
- && (hookpoint != E_COMP_OBJECT_HOOK_LOWER)
+ && (hookpoint != E_COMP_OBJECT_HOOK_LOWER) &&
+ (hookpoint != E_COMP_OBJECT_HOOK_MOVE)
#endif
)
{
if (!cw->frame_object)
x = ix, y = iy;
evas_object_move(obj, x, y);
+
+#ifdef REFACTOR_FOCUS_POLICY
+ _e_comp_object_hook_call(E_COMP_OBJECT_HOOK_MOVE, cw->ec);
+#endif
}
}
E_COMP_OBJECT_HOOK_RENDER_UPDATE_LOCK_SET,
//#ifdef REFACTOR_FOCUS_POLICY
E_COMP_OBJECT_HOOK_LOWER,
+ E_COMP_OBJECT_HOOK_MOVE,
//#endif
E_COMP_OBJECT_HOOK_LAST,
} E_Comp_Object_Hook_Point;
return EINA_TRUE;
}
+static Eina_Bool
+_focus_policy_history_hook_cb_comp_object_move(void *data, E_Client *ec)
+{
+ // TODO:
+
+ return EINA_TRUE;
+}
+
static void
_focus_policy_history_del(E_Focus_Policy_Impl *impl)
{
// 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);
+ E_COMP_COMP_HOOK_APPEND(history_policy->co_hooks, E_COMP_OBJECT_HOOK_MOVE, _focus_policy_history_hook_cb_comp_object_move, history_policy);
return policy_iface;
return EINA_TRUE;
}
+static Eina_Bool
+_focus_policy_topmost_hook_cb_comp_object_move(void *data, E_Client *ec)
+{
+ // TODO:
+
+ return EINA_TRUE;
+}
+
static void
_focus_policy_topmost_del(E_Focus_Policy_Impl *impl)
{
// 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);
+ E_COMP_COMP_HOOK_APPEND(topmost_policy->co_hooks, E_COMP_OBJECT_HOOK_MOVE, _focus_policy_topmost_hook_cb_comp_object_move, topmost_policy);
return policy_iface;