bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8fa22f2ab75f940303c38c204b44cfaa72b89feb
commit 8fa22f2ab75f940303c38c204b44cfaa72b89feb Author: Marcel Hollerbach <[email protected]> Date: Tue Mar 27 14:08:04 2018 +0200 elm_config: add new infra for reloading config into the widget tree fix T6792 --- src/lib/elementary/efl_ui_win.c | 5 ----- src/lib/elementary/elm_config.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index b8879c6dd5..2a80a340d8 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -3658,11 +3658,6 @@ _elm_win_translate(void) efl_ui_translatable_translation_update(obj); } -void -_elm_win_focus_reconfigure(void) -{ - /* FOCUS-FIXME */ -} #ifdef HAVE_ELEMENTARY_X static Eina_Bool diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c index 16063906c8..4504b41f50 100644 --- a/src/lib/elementary/elm_config.c +++ b/src/lib/elementary/elm_config.c @@ -3445,6 +3445,40 @@ elm_config_focus_move_policy_get(void) return _elm_config->focus_move_policy; } +static void +_efl_ui_widget_config_reload(Efl_Ui_Widget *obj) +{ + Elm_Focus_Move_Policy focus_move_policy = elm_config_focus_move_policy_get(); + ELM_WIDGET_DATA_GET_OR_RETURN(obj, sd); + Efl_Ui_Widget *w; + Eina_List *n; + + //reload focus move policy + if (efl_ui_widget_focus_move_policy_automatic_get(obj) && + (sd->focus_move_policy != focus_move_policy)) + { + sd->focus_move_policy = focus_move_policy; + } + + EINA_LIST_FOREACH(sd->subobjs, n, w) + { + if (efl_isa(w, EFL_UI_WIDGET_CLASS)) + _efl_ui_widget_config_reload(w); + } +} + +void +_elm_win_focus_reconfigure(void) +{ + const Eina_List *l; + Evas_Object *obj; + + EINA_LIST_FOREACH(_elm_win_list, l, obj) + { + _efl_ui_widget_config_reload(obj); + } +} + EAPI void elm_config_focus_move_policy_set(Elm_Focus_Move_Policy policy) { --
