edje: fix previous breakage with auto unswallow.

SVN revision: 72563
This commit is contained in:
Cedric BAIL 2012-06-21 06:38:51 +00:00
parent ed4fd6b877
commit 4fdb3664b6
1 changed files with 11 additions and 25 deletions

View File

@ -95,14 +95,14 @@ _edje_user_definition_free(Edje_User_Defined *eud)
rp->swallowed_object = NULL;
rp->swallow_params.min.w = 0;
rp->swallow_params.min.h = 0;
rp->swallow_params.max.w = 0;
rp->swallow_params.max.h = 0;
rp->swallow_params.max.w = 0;
rp->swallow_params.max.h = 0;
rp->edje->dirty = 1;
rp->edje->recalc_call = 1;
rp->edje->recalc_call = 1;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
_edje_recalc_do(rp->edje);
break;
case EDJE_USER_BOX_PACK:
child = eud->u.box.child;
@ -2473,20 +2473,6 @@ edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_sw
// XXX: by Sachiel, January 21th 2009, 19:30 UTC
_edje_recalc_do(ed);
EINA_LIST_FOREACH(ed->user_defined, l, eud)
if (eud->type == EDJE_USER_SWALLOW && !strcmp(part, eud->part))
{
ed->user_defined = eina_list_remove_list(ed->user_defined, l);
if (!obj_swallow)
{
_edje_user_definition_free(eud);
l = NULL;
eud = NULL;
break;
}
break;
}
rp = evas_object_data_get(obj_swallow, "\377 edje.swallowing_part");
if (rp)
{
@ -2825,7 +2811,7 @@ edje_object_part_unswallow(Evas_Object *obj, Evas_Object *obj_swallow)
if (eud->type == EDJE_USER_SWALLOW && eud->u.swallow.child == obj_swallow)
{
_edje_user_definition_free(eud);
break;
return ;
}
}
}
@ -5030,7 +5016,7 @@ _edje_real_part_swallow_hints_update(Edje_Real_Part *rp)
}
rp->swallow_params.aspect.w = aw;
rp->swallow_params.aspect.h = ah;
evas_object_data_set(rp->swallowed_object, "\377 edje.swallowing_part", rp);
evas_object_data_set(rp->swallowed_object, "\377 edje.swallowing_part", rp);
}
#ifdef EDJE_CALC_CACHE
@ -5060,8 +5046,7 @@ _edje_real_part_swallow(Edje_Real_Part *rp,
{
if (rp->swallowed_object != obj_swallow)
{
_edje_real_part_swallow_clear(rp);
rp->swallowed_object = NULL;
edje_object_part_unswallow(rp->edje->obj, rp->swallowed_object);
}
else
{
@ -5085,7 +5070,7 @@ _edje_real_part_swallow(Edje_Real_Part *rp,
else evas_object_clip_set(rp->swallowed_object, rp->edje->base.clipper);
evas_object_stack_above(rp->swallowed_object, rp->object);
evas_object_event_callback_add(rp->swallowed_object,
EVAS_CALLBACK_FREE,
EVAS_CALLBACK_DEL,
_edje_object_part_swallow_free_cb,
rp);
evas_object_event_callback_add(rp->swallowed_object,
@ -5123,7 +5108,7 @@ _edje_real_part_swallow_clear(Edje_Real_Part *rp)
{
evas_object_smart_member_del(rp->swallowed_object);
evas_object_event_callback_del_full(rp->swallowed_object,
EVAS_CALLBACK_FREE,
EVAS_CALLBACK_DEL,
_edje_object_part_swallow_free_cb,
rp);
evas_object_event_callback_del_full(rp->swallowed_object,
@ -5135,6 +5120,7 @@ _edje_real_part_swallow_clear(Edje_Real_Part *rp)
if (rp->part->mouse_events)
_edje_callbacks_del(rp->swallowed_object, rp->edje);
_edje_callbacks_focus_del(rp->swallowed_object, rp->edje);
rp->swallowed_object = NULL;
}
static void