efl_ui_focus_manager_sub: flush the border if we cannot find a candidate

after that someone probebly wants to check where the last focus was on,
if the set of boder elements has changed since the last border flush, then the
element might not be registered in the parent manager
This commit is contained in:
Marcel Hollerbach 2018-02-28 18:42:24 +01:00
parent 984d8bd4ce
commit 44a3e2b7c4
2 changed files with 13 additions and 0 deletions

View File

@ -211,5 +211,17 @@ _efl_ui_focus_manager_sub_efl_object_destructor(Eo *obj, Efl_Ui_Focus_Manager_Su
efl_destructor(efl_super(obj, MY_CLASS));
}
EOLIAN static Efl_Ui_Focus_Object*
_efl_ui_focus_manager_sub_efl_ui_focus_manager_move(Eo *obj, Efl_Ui_Focus_Manager_Sub_Data *pd, Efl_Ui_Focus_Direction direction)
{
Eo *target = efl_ui_focus_manager_move(efl_super(obj, MY_CLASS), direction);
if (!target)
_border_flush(obj, pd);
return target;
}
#include "efl_ui_focus_manager_sub.eo.c"

View File

@ -18,5 +18,6 @@ mixin Efl.Ui.Focus.Manager.Sub (Efl.Interface, Efl.Ui.Focus.Manager, Efl.Object)
implements {
Efl.Object.constructor;
Efl.Object.destructor;
Efl.Ui.Focus.Manager.move;
}
}