cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0e5aa8dccd7f55053a10b673f2174c4e5a26024f

commit 0e5aa8dccd7f55053a10b673f2174c4e5a26024f
Author: Cedric Bail <ced...@osg.samsung.com>
Date:   Fri Apr 6 14:53:44 2018 -0700

    evas: do not link the life cycle of the device with the parent.
---
 src/lib/evas/canvas/evas_device.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/lib/evas/canvas/evas_device.c 
b/src/lib/evas/canvas/evas_device.c
index e67350deeb..a871116aee 100644
--- a/src/lib/evas/canvas/evas_device.c
+++ b/src/lib/evas/canvas/evas_device.c
@@ -184,11 +184,11 @@ evas_device_add_full(Evas *eo_e, const char *name, const 
char *desc,
 
    SAFETY_CHECK(eo_e, EVAS_CANVAS_CLASS, NULL);
 
-   dev = efl_add(EFL_INPUT_DEVICE_CLASS, parent_dev ?: eo_e,
-                 efl_name_set(efl_added, name),
-                 efl_comment_set(efl_added, desc),
-                 efl_input_device_type_set(efl_added, clas),
-                 efl_input_device_source_set(efl_added, emulation_dev));
+   dev = efl_add_ref(EFL_INPUT_DEVICE_CLASS, parent_dev ?: eo_e,
+                     efl_name_set(efl_added, name),
+                     efl_comment_set(efl_added, desc),
+                     efl_input_device_type_set(efl_added, clas),
+                     efl_input_device_source_set(efl_added, emulation_dev));
 
    d = efl_data_scope_get(dev, EFL_INPUT_DEVICE_CLASS);
    d->evas = eo_e;
@@ -264,8 +264,9 @@ EAPI void
 evas_device_del(Evas_Device *dev)
 {
    SAFETY_CHECK(dev, EFL_INPUT_DEVICE_CLASS);
-
-   efl_del(dev);
+   if (!efl_invalidated_get(dev))
+     efl_del(dev);
+   efl_unref(dev);
 }
 
 EAPI void

-- 


Reply via email to