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.
|
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_ui_focus_object_focus_set(new_focusable, EINA_TRUE);
|
||||||
efl_event_callback_call(obj, EFL_UI_FOCUS_MANAGER_EVENT_FOCUSED, last_focusable);
|
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
|
EOLIAN static void
|
||||||
|
|
Loading…
Reference in New Issue