summaryrefslogtreecommitdiff
path: root/legacy/edje/src/lib/edje_load.c
diff options
context:
space:
mode:
authorLeandro Dorileo <dorileo@profusion.mobi>2012-12-19 20:09:41 +0000
committerLeandro Dorileo <dorileo@profusion.mobi>2012-12-19 20:09:41 +0000
commit3a22bb3d5bf3f69f33a56e7a3af04e995a9be09a (patch)
tree461686cc73827594bd194509daff88dac88b36e8 /legacy/edje/src/lib/edje_load.c
parent1bcae8fdd4a2395cd26f61010a9fe21ae477224a (diff)
Edje: delete real part object after swallows got handled
Case the real part object(rp->object) is an smart object it start to delete the whole smart object hierarchy and a child object may be a swallow of this real part. So just delete the rp->object after swallows got handled. SVN revision: 81403
Diffstat (limited to '')
-rw-r--r--legacy/edje/src/lib/edje_load.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/legacy/edje/src/lib/edje_load.c b/legacy/edje/src/lib/edje_load.c
index a2d4fb3498..a11d11d92a 100644
--- a/legacy/edje/src/lib/edje_load.c
+++ b/legacy/edje/src/lib/edje_load.c
@@ -1314,12 +1314,7 @@ _edje_file_del(Edje *ed)
1314 1314
1315 if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) 1315 if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
1316 _edje_entry_real_part_shutdown(rp); 1316 _edje_entry_real_part_shutdown(rp);
1317 if (rp->object) 1317
1318 {
1319 _edje_callbacks_del(rp->object, ed);
1320 _edje_callbacks_focus_del(rp->object, ed);
1321 evas_object_del(rp->object);
1322 }
1323 if ((rp->type == EDJE_RP_TYPE_CONTAINER) && 1318 if ((rp->type == EDJE_RP_TYPE_CONTAINER) &&
1324 (rp->typedata.container)) 1319 (rp->typedata.container))
1325 { 1320 {
@@ -1368,6 +1363,13 @@ _edje_file_del(Edje *ed)
1368 free(rp->typedata.swallow); 1363 free(rp->typedata.swallow);
1369 } 1364 }
1370 1365
1366 if (rp->object)
1367 {
1368 _edje_callbacks_del(rp->object, ed);
1369 _edje_callbacks_focus_del(rp->object, ed);
1370 evas_object_del(rp->object);
1371 }
1372
1371 if (rp->custom) 1373 if (rp->custom)
1372 { 1374 {
1373 // xxx: lua2 1375 // xxx: lua2