{
case EDJE_USER_SWALLOW:
child = eud->u.swallow.child;
- edje_object_part_unswallow(eud->ed->obj, child);
+ rp = _edje_real_part_recursive_get(eud->ed, eud->part);
+ _edje_real_part_swallow_clear(rp);
+ rp->swallowed_object = NULL;
break;
case EDJE_USER_BOX_PACK:
child = eud->u.box.child;
evas_object_event_callback_del_full(rp->swallowed_object,
EVAS_CALLBACK_FREE,
_edje_object_part_swallow_free_cb,
- rp->edje->obj);
+ rp);
evas_object_event_callback_del_full(rp->swallowed_object,
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
_edje_object_part_swallow_changed_hints_cb,
void
_edje_object_part_swallow_free_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
{
- Evas_Object *edje_obj;
+ Edje_Real_Part *rp;
+
+ rp = data;
+ _edje_real_part_swallow_clear(rp);
+ rp->swallowed_object = NULL;
- edje_obj = data;
- edje_object_part_unswallow(edje_obj, obj);
return;
}
evas_object_event_callback_add(rp->swallowed_object,
EVAS_CALLBACK_DEL,
_edje_object_part_swallow_free_cb,
- rp->edje->obj);
+ rp);
evas_object_event_callback_add(rp->swallowed_object,
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
_edje_object_part_swallow_changed_hints_cb,
evas_object_event_callback_del_full(rp->swallowed_object,
EVAS_CALLBACK_FREE,
_edje_object_part_swallow_free_cb,
- rp->edje->obj);
+ rp);
evas_object_event_callback_del_full(rp->swallowed_object,
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
_edje_object_part_swallow_changed_hints_cb,