child = eud->u.swallow.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;
}
}
- _edje_real_part_swallow_clear(rp);
+ evas_object_smart_member_del(rp->swallowed_object);
+ evas_object_event_callback_del_full(rp->swallowed_object,
+ EVAS_CALLBACK_FREE,
+ _edje_object_part_swallow_free_cb,
+ rp);
+ evas_object_event_callback_del_full(rp->swallowed_object,
+ EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+ _edje_object_part_swallow_changed_hints_cb,
+ rp);
+ evas_object_clip_unset(rp->swallowed_object);
+ evas_object_data_del(rp->swallowed_object, "\377 edje.swallowing_part");
+
+ 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;
rp->swallow_params.min.w = 0;
_edje_object_part_swallow_free_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Edje_Real_Part *rp;
- Edje_User_Defined *eud;
- Eina_List *l;
rp = data;
-
- EINA_LIST_FOREACH(rp->edje->user_defined, l, eud)
- if (eud->type == EDJE_USER_SWALLOW && eud->u.swallow.child == obj)
- {
- _edje_user_definition_free(eud);
- break;
- }
-
_edje_real_part_swallow_clear(rp);
rp->swallowed_object = NULL;
{
evas_object_smart_member_del(rp->swallowed_object);
evas_object_event_callback_del_full(rp->swallowed_object,
- EVAS_CALLBACK_DEL,
+ EVAS_CALLBACK_FREE,
_edje_object_part_swallow_free_cb,
rp);
evas_object_event_callback_del_full(rp->swallowed_object,