summaryrefslogtreecommitdiff
path: root/src/lib/edje
diff options
context:
space:
mode:
authorCedric Bail <cedric@osg.samsung.com>2018-05-09 17:24:01 -0700
committerCedric BAIL <cedric@osg.samsung.com>2018-05-24 16:02:19 -0700
commit3347db4bea7becd89d05fad699fac6e19c6ad47a (patch)
tree234632778f9ac548165e8ee1035e49dcab9ca325 /src/lib/edje
parenta3c91d14a9a1de06a9f2c42a1d85804379f7afd0 (diff)
edje: do not reparent when the object is dead already.
Diffstat (limited to 'src/lib/edje')
-rw-r--r--src/lib/edje/edje_util.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c
index fb66272427..71577832aa 100644
--- a/src/lib/edje/edje_util.c
+++ b/src/lib/edje/edje_util.c
@@ -4540,9 +4540,19 @@ _edje_child_add(Edje *ed, Edje_Real_Part *rp, Evas_Object *child)
4540static void 4540static void
4541_eo_unparent_helper(Eo *child, Eo *parent) 4541_eo_unparent_helper(Eo *child, Eo *parent)
4542{ 4542{
4543 if (efl_invalidated_get(child)) return ;
4543 if (efl_parent_get(child) == parent) 4544 if (efl_parent_get(child) == parent)
4544 { 4545 {
4545 efl_parent_set(child, evas_object_evas_get(parent)); 4546 if (efl_invalidated_get(evas_object_evas_get(parent)))
4547 // Temporary reparenting children to the main loop.
4548 // They are about to die, but shouldn't just yet.
4549 {
4550 efl_parent_set(child, efl_main_loop_get());
4551 }
4552 else
4553 {
4554 efl_parent_set(child, evas_object_evas_get(parent));
4555 }
4546 } 4556 }
4547} 4557}
4548 4558