elm_widget: also eval all children when we are visible

This commit is contained in:
Marcel Hollerbach 2017-10-10 21:23:42 +02:00
parent e85da3d956
commit 48129e7a8e
1 changed files with 21 additions and 21 deletions

View File

@ -790,6 +790,25 @@ _elm_widget_efl_gfx_size_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd, Ein
efl_gfx_size_set(efl_super(obj, MY_CLASS), sz);
}
static void
_full_eval_children(Eo *obj, Elm_Widget_Smart_Data *sd)
{
Eina_List *l;
Eo *child;
_full_eval(obj, sd);
EINA_LIST_FOREACH(sd->subobjs , l, child)
{
Elm_Widget_Smart_Data *sd_child;
if (!efl_isa(child, ELM_WIDGET_CLASS)) continue;
sd_child = efl_data_scope_get(child, ELM_WIDGET_CLASS);
_full_eval_children(child, sd_child);
}
}
EOLIAN static void
_elm_widget_efl_gfx_visible_set(Eo *obj, Elm_Widget_Smart_Data *pd, Eina_Bool vis)
{
@ -798,13 +817,13 @@ _elm_widget_efl_gfx_visible_set(Eo *obj, Elm_Widget_Smart_Data *pd, Eina_Bool vi
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_VISIBLE, 0, vis))
{
_full_eval(obj, pd);
_full_eval_children(obj, pd);
return;
}
efl_gfx_visible_set(efl_super(obj, MY_CLASS), vis);
_full_eval(obj, pd);
_full_eval_children(obj, pd);
it = evas_object_smart_iterator_new(obj);
@ -1675,25 +1694,6 @@ elm_widget_child_can_focus_get(const Eo *obj)
return sd->child_can_focus;
}
static void
_full_eval_children(Eo *obj, Elm_Widget_Smart_Data *sd)
{
Eina_List *l;
Eo *child;
_full_eval(obj, sd);
EINA_LIST_FOREACH(sd->subobjs , l, child)
{
Elm_Widget_Smart_Data *sd_child;
if (!efl_isa(child, ELM_WIDGET_CLASS)) continue;
sd_child = efl_data_scope_get(child, ELM_WIDGET_CLASS);
_full_eval_children(child, sd_child);
}
}
/**
* @internal
*