bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c8ba7a070fc0ee9aef514fe48aca02153587729e
commit c8ba7a070fc0ee9aef514fe48aca02153587729e Author: Marcel Hollerbach <[email protected]> Date: Thu Mar 15 15:02:57 2018 +0100 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. --- src/lib/elementary/efl_ui_focus_manager_calc.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c b/src/lib/elementary/efl_ui_focus_manager_calc.c index 403f8cf265..27799e51c1 100644 --- a/src/lib/elementary/efl_ui_focus_manager_calc.c +++ b/src/lib/elementary/efl_ui_focus_manager_calc.c @@ -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 --
