edje: unswallow objects from parent edje when swallowing into new edje

the passed edje is not guaranteed to be the one which owns the swallowed
object at any given time, so get the current owner to ensure that the
correct one is passed

ref a645c8153f

 #MasterOfAllBorkers

@fix
This commit is contained in:
Mike Blumenkrantz 2016-01-11 18:27:35 -05:00
parent b63b631efd
commit fd4519f8a1
1 changed files with 4 additions and 1 deletions

View File

@ -3500,10 +3500,13 @@ _edje_object_part_swallow(Eo *obj EINA_UNUSED, Edje *ed, const char *part, Evas_
rpcur = evas_object_data_get(obj_swallow, "\377 edje.swallowing_part");
if (rpcur)
{
Edje *sed;
/* the object is already swallowed in the requested part */
if (rpcur == rp) return EINA_TRUE;
sed = evas_object_data_get(obj_swallow, ".edje");
/* The object is already swallowed somewhere, unswallow it first */
edje_object_part_unswallow(ed->obj, obj_swallow);
edje_object_part_unswallow(sed->obj, obj_swallow);
}
if (!rp)