zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c3cc96d0f8f592c75c4c62031d69c95c82b32f18

commit c3cc96d0f8f592c75c4c62031d69c95c82b32f18
Author: Marcel Hollerbach <[email protected]>
Date:   Mon Mar 23 12:12:19 2020 -0400

    efl_ui_widget: do not eval all the children twice
    
    Summary:
    eval all children is ending up in the complete discovery of the whole
    subtree, which is unnessesary here, as we are already discovering the
    whole subtree with the calls, these changes are in, so simple
    evalulating this is enough.
    Depends on D11551
    
    Reviewers: zmike
    
    Reviewed By: zmike
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D11554
---
 src/lib/elementary/efl_ui_widget.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/lib/elementary/efl_ui_widget.c 
b/src/lib/elementary/efl_ui_widget.c
index f5063a3575..5cd1df091f 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -1766,15 +1766,13 @@ elm_widget_tree_unfocusable_set(Eo *obj, Eina_Bool 
tree_unfocusable)
      }
    if (old_tree_unfocusable != pd->tree_unfocusable)
      {
+        _full_eval(obj, pd);
         for (unsigned int i = 0; i < eina_array_count(pd->children); ++i)
           {
              subs = eina_array_data_get(pd->children, i);
              if (efl_isa(subs, EFL_UI_WIDGET_CLASS))
                elm_widget_tree_unfocusable_set(subs, 
elm_widget_tree_unfocusable_get(obj));
           }
-
-        //focus state eval on all children
-        _elm_widget_full_eval_children(obj, pd);
      }
 }
 
@@ -2129,14 +2127,14 @@ _efl_ui_widget_disabled_set(Eo *obj EINA_UNUSED, 
Elm_Widget_Smart_Data *pd, Eina
      }
    if (old_state != pd->disabled)
      {
+        if (efl_finalized_get(obj))
+          _full_eval(obj, pd);
         for (unsigned int i = 0; i < eina_array_count(pd->children); ++i)
           {
              subs = eina_array_data_get(pd->children, i);
              if (efl_isa(subs, EFL_UI_WIDGET_CLASS))
                efl_ui_widget_disabled_set(subs, 
efl_ui_widget_disabled_get(obj));
           }
-        if (efl_finalized_get(obj))
-          _elm_widget_full_eval_children(obj, pd);
      }
 }
 

-- 


Reply via email to