Revert "Revert "recursively hide edje group objects on edje hide""

This reverts commit b8ca758658.
This commit is contained in:
Mike Blumenkrantz 2014-05-26 12:25:07 -04:00
parent b8ca758658
commit ceb13556b1
3 changed files with 25 additions and 3 deletions

View File

@ -3915,7 +3915,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
eo_do(ep->typedata.swallow->swallowed_object,
evas_obj_position_set(ed->x + pf->final.x, ed->y + pf->final.y),
evas_obj_size_set(pf->final.w, pf->final.h),
evas_obj_visibility_set(EINA_TRUE));
evas_obj_visibility_set(evas_object_visible_get(ed->obj)));
}
else evas_object_hide(ep->typedata.swallow->swallowed_object);
mo = ep->typedata.swallow->swallowed_object;

View File

@ -899,7 +899,9 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch
obj);
if (rp->part->type == EDJE_PART_TYPE_GROUP)
{
ed->groups = eina_list_append(ed->groups, _edje_fetch(child_obj));
Edje *edg = _edje_fetch(child_obj);
ed->groups = eina_list_append(ed->groups, edg);
evas_object_data_set(child_obj, "\377 edje.part_obj", rp);
_edje_real_part_swallow(ed, rp, child_obj, EINA_TRUE);
_edje_subobj_register(ed, child_obj);
source = NULL;
@ -1965,4 +1967,4 @@ _cb_signal_repeat(void *data, Evas_Object *obj, const char *sig, const char *sou
if (ed_parent)
_edje_util_message_send(ed_parent, EDJE_QUEUE_SCRIPT,
EDJE_MESSAGE_SIGNAL, 0, &emsg);
}
}

View File

@ -272,6 +272,9 @@ _edje_evas_smart_resize(Eo *obj EINA_UNUSED, Edje *ed, Evas_Coord w, Evas_Coord
EOLIAN static void
_edje_evas_smart_show(Eo *obj, Edje *ed)
{
Eina_List *l;
Edje *edg;
eo_do_super(obj, MY_CLASS, evas_obj_smart_show());
if (evas_object_visible_get(obj)) return;
if (_edje_script_only(ed))
@ -284,12 +287,27 @@ _edje_evas_smart_show(Eo *obj, Edje *ed)
_edje_lua_script_only_show(ed);
return;
}
if (eina_list_count(ed->groups) > 1)
{
EINA_LIST_FOREACH(ed->groups, l, edg)
{
Edje_Real_Part *rp;
if (edg == ed) continue;
rp = evas_object_data_get(edg->obj, "\377 edje.part_obj");
if (rp->chosen_description->visible)
evas_object_show(edg->obj);
}
}
_edje_emit(ed, "show", NULL);
}
EOLIAN static void
_edje_evas_smart_hide(Eo *obj, Edje *ed)
{
Eina_List *l;
Edje *edg;
eo_do_super(obj, MY_CLASS, evas_obj_smart_hide());
if (!evas_object_visible_get(obj)) return;
if (_edje_script_only(ed))
@ -302,6 +320,8 @@ _edje_evas_smart_hide(Eo *obj, Edje *ed)
_edje_lua_script_only_hide(ed);
return;
}
EINA_LIST_FOREACH(ed->groups, l, edg)
if (edg != ed) evas_object_hide(edg->obj);
_edje_emit(ed, "hide", NULL);
}