summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2018-05-14 10:11:58 -0700
committerCedric BAIL <cedric@osg.samsung.com>2018-05-22 16:55:08 -0700
commitd2e9c044f9e3ab96e60b3abb6388bda58e19beec (patch)
tree6ab245d80d6221b4090452fc6dae796378bd8f20
parent1719d3f9053f9bfb379b4f5401c32630930183b7 (diff)
downloadefl-d2e9c044f9e3ab96e60b3abb6388bda58e19beec.tar.gz
eo: efl_invalidate should also be triggered for object with no parent before the destructor.
-rw-r--r--src/lib/eo/eo_private.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/eo/eo_private.h b/src/lib/eo/eo_private.h
index ee8dfa7aba..419ea2f0be 100644
--- a/src/lib/eo/eo_private.h
+++ b/src/lib/eo/eo_private.h
@@ -254,6 +254,7 @@ _eo_condtor_reset(_Eo_Object *obj)
typedef struct _Efl_Object_Data Efl_Object_Data;
EOLIAN void _efl_object_parent_set(Eo *obj, Efl_Object_Data *pd, Eo *parent_id);
+void _efl_invalidate(_Eo_Object *obj);
static inline void
_efl_del_internal(_Eo_Object *obj, const char *func_name, const char *file, int line)
@@ -284,6 +285,10 @@ _efl_del_internal(_Eo_Object *obj, const char *func_name, const char *file, int
_efl_object_parent_set(_eo_obj_id_get(obj), efl_data_scope_get(_eo_obj_id_get(obj), EFL_OBJECT_CLASS), NULL);
}
}
+ else if (!obj->invalidate || !obj->is_invalidating)
+ {
+ _efl_invalidate(obj);
+ }
efl_event_callback_call(_eo_obj_id_get(obj), EFL_EVENT_DEL, NULL);