bdilly pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=72c80ca947bbadd8747fe85c5911ad0bfe28f03e

commit 72c80ca947bbadd8747fe85c5911ad0bfe28f03e
Author: Guilherme Iscaro <isc...@profusion.mobi>
Date:   Tue Sep 20 12:10:08 2016 -0300

    Evas_Device: Add a new event for added and removed devices.
    
    This commits adds two event types for EFL_CANVAS. Every time
    a device is added or removed the matching event will be emitted.
---
 src/lib/efl/interfaces/efl_canvas.eo | 2 ++
 src/lib/evas/canvas/evas_device.c    | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/src/lib/efl/interfaces/efl_canvas.eo 
b/src/lib/efl/interfaces/efl_canvas.eo
index 7df573f..e0eba6a 100644
--- a/src/lib/efl/interfaces/efl_canvas.eo
+++ b/src/lib/efl/interfaces/efl_canvas.eo
@@ -155,5 +155,7 @@ interface Efl.Canvas ()
       render,pre;
       render,post;
       device,changed: Efl.Input.Device;
+      device,added: Efl.Input.Device;
+      device,removed: Efl.Input.Device;
    }
 }
diff --git a/src/lib/evas/canvas/evas_device.c 
b/src/lib/evas/canvas/evas_device.c
index 7fc8272..598cee1 100644
--- a/src/lib/evas/canvas/evas_device.c
+++ b/src/lib/evas/canvas/evas_device.c
@@ -31,6 +31,8 @@ _del_cb(void *data, const Efl_Event *ev)
 
    // can not be done in std destructor
    e->devices = eina_list_remove(e->devices, ev->object);
+   efl_event_callback_call(e->evas, EFL_CANVAS_EVENT_DEVICE_REMOVED,
+                           ev->object);
 }
 
 EAPI Evas_Device *
@@ -68,6 +70,8 @@ evas_device_full_add(Evas *eo_e, const char *name, const char 
*desc,
      e->devices = eina_list_append(e->devices, dev);
    efl_event_callback_add(dev, EFL_EVENT_DEL, _del_cb, e);
 
+   efl_event_callback_call(eo_e, EFL_CANVAS_EVENT_DEVICE_ADDED, dev);
+   // Keeping this event to do not break things...
    evas_event_callback_call(eo_e, EVAS_CALLBACK_DEVICE_CHANGED, dev);
 
    return dev;

-- 


Reply via email to