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)
 {

-- 


Reply via email to