forked from enlightenment/efl
efl_ui_focus_manager_calc: set redirect before setting focus
settings the redirect might result in unfocus calls, that might unset evas_object_focus on a object that might be registered in two managers due to border linking. This fixes mysterical disapearing focus.
This commit is contained in:
parent
875a7eb0da
commit
c8ba7a070f
|
@ -1605,7 +1605,12 @@ _efl_ui_focus_manager_calc_efl_ui_focus_manager_manager_focus_set(Eo *obj, Efl_U
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
//now check if this is also a listener object
|
||||
if (redirect_manager)
|
||||
{
|
||||
//set the redirect
|
||||
efl_ui_focus_manager_redirect_set(obj, redirect_manager);
|
||||
}
|
||||
|
||||
/*
|
||||
Only emit those signals if we are already at the top of the focus stack.
|
||||
|
@ -1620,13 +1625,6 @@ _efl_ui_focus_manager_calc_efl_ui_focus_manager_manager_focus_set(Eo *obj, Efl_U
|
|||
efl_ui_focus_object_focus_set(new_focusable, EINA_TRUE);
|
||||
efl_event_callback_call(obj, EFL_UI_FOCUS_MANAGER_EVENT_FOCUSED, last_focusable);
|
||||
}
|
||||
|
||||
//now check if this is also a listener object
|
||||
if (redirect_manager)
|
||||
{
|
||||
//set the redirect
|
||||
efl_ui_focus_manager_redirect_set(obj, redirect_manager);
|
||||
}
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
|
|
Loading…
Reference in New Issue