Revert "efl_ui_focus_manager: do not adjust values on a inactive manager"

Sorry this was a accident

This reverts commit a6ee2061a3.
This commit is contained in:
Marcel Hollerbach 2018-08-24 16:04:33 +02:00
parent 6277c3436c
commit 4a808834d0
1 changed files with 22 additions and 50 deletions

View File

@ -89,33 +89,6 @@ static void dirty_add(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd, Node *dirty);
static Node* _next(Node *node);
static void _prepare_node(Node *root);
static Eina_Bool
_focus_manager_active_get(Eo *obj)
{
Eo *root, *manager, *comp_parent, *redirect;
if (efl_isa(obj, EFL_UI_FOCUS_MANAGER_WINDOW_ROOT_INTERFACE)) return EINA_TRUE;
root = efl_ui_focus_manager_root_get(obj);
manager = efl_ui_focus_object_focus_manager_get(root);
if (manager)
redirect = efl_ui_focus_manager_redirect_get(manager);
else
redirect = NULL;
if (efl_composite_part_is(obj))
comp_parent = efl_parent_get(obj); //a focus manager can be attached to something via composition
else
comp_parent = NULL;
if (redirect == obj ||
(comp_parent && redirect == comp_parent))
return EINA_TRUE;
return EINA_FALSE;
}
static void
_manager_in_chain_set(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd)
{
@ -822,31 +795,30 @@ _efl_ui_focus_manager_calc_efl_ui_focus_manager_redirect_set(Eo *obj, Efl_Ui_Foc
efl_ui_focus_manager_reset_history(old_manager);
//adjust focus property of the most upper element
if (_focus_manager_active_get(obj))
{
Node *n = NULL;
{
Node *n = NULL;
n = eina_list_last_data_get(pd->focus_stack);
n = eina_list_last_data_get(pd->focus_stack);
if (!pd->redirect && old_manager)
{
if (n)
{
efl_ui_focus_object_focus_set(n->focusable, EINA_TRUE);
}
else
{
n = _request_subchild(pd->root);
if (n)
efl_ui_focus_manager_focus_set(obj, n->focusable);
}
}
else if (pd->redirect && !old_manager)
{
if (n)
efl_ui_focus_object_focus_set(n->focusable, EINA_FALSE);
}
}
if (!pd->redirect && old_manager)
{
if (n)
{
efl_ui_focus_object_focus_set(n->focusable, EINA_TRUE);
}
else
{
n = _request_subchild(pd->root);
if (n)
efl_ui_focus_manager_focus_set(obj, n->focusable);
}
}
else if (pd->redirect && !old_manager)
{
if (n)
efl_ui_focus_object_focus_set(n->focusable, EINA_FALSE);
}
}
efl_event_callback_call(obj, EFL_UI_FOCUS_MANAGER_EVENT_REDIRECT_CHANGED , old_manager);