zmike pushed a commit to branch efl-1.22.

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

commit 41189a00513fee921b0c2ecd61b74380f29ab90f
Author: Woochanlee <[email protected]>
Date:   Fri Apr 12 15:45:37 2019 +0900

    efl_ui_widget: Fix disabled set calling without meaning.
    
    Summary:
    The efl_ui_widget_disabled_set calling even the state is not change when 
widget create and destroy.
    
    It broken backward compatibility.
    
    T7799
    @fix
    
    Reviewers: bu5hm4n, Jaehyun_Cho
    
    Reviewed By: Jaehyun_Cho
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D8600
---
 src/lib/elementary/efl_ui_widget.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/lib/elementary/efl_ui_widget.c 
b/src/lib/elementary/efl_ui_widget.c
index 15585ca731..c56990f8b3 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -1373,8 +1373,16 @@ _disabled_counter_get(Eo *widget)
 static void
 _mirror_disabled_state(Eo *obj, Elm_Widget_Smart_Data *pd, int disabled_delta)
 {
+   int prev_disabled = pd->disabled;
+
    pd->disabled = (pd->parent_obj ? _disabled_counter_get(pd->parent_obj) : 0) 
+ disabled_delta;
 
+   //The current disabled state is the same as the parent
+   //when the parent is assigned or changed, no further action is required.
+   if (((prev_disabled > 0 && pd->disabled > 0)) ||
+       ((prev_disabled <= 0 && pd->disabled <= 0)))
+     return;
+
    //we should not call disabled_set when things are invalidated
    //otherwise we will unleashe an amount of errors in efl_ui_layout
    if (efl_invalidated_get(obj)) return;

-- 


Reply via email to