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
This commit is contained in:
Woochanlee 2019-04-12 15:45:37 +09:00 committed by Jaehyun Cho
parent a12bd0ad30
commit 638a36ea9a
1 changed files with 8 additions and 0 deletions

View File

@ -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;