discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6775b23212305c957f4447c708053585f361bb86

commit 6775b23212305c957f4447c708053585f361bb86
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri May 26 16:34:10 2017 -0400

    evas: better handle async device creation of default mouse
    
    instead of yolo setting the first pointer-ish device which is created,
    check to see if a better match for "default mouse" can be applied
    
    @fix
---
 src/lib/evas/canvas/evas_device.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/evas_device.c 
b/src/lib/evas/canvas/evas_device.c
index 2e7763aa1c..ae048e6cbc 100644
--- a/src/lib/evas/canvas/evas_device.c
+++ b/src/lib/evas/canvas/evas_device.c
@@ -190,7 +190,21 @@ evas_device_add_full(Evas *eo_e, const char *name, const 
char *desc,
              return NULL;
           }
 
-        if (!e->default_mouse)
+        if (e->default_mouse)
+          {
+             int x, y;
+
+             if ((clas == EVAS_DEVICE_CLASS_MOUSE) &&
+                 (parent_dev == e->default_seat) &&
+                 (evas_device_class_get(e->default_mouse) != 
EVAS_DEVICE_CLASS_MOUSE))
+               {
+                  evas_pointer_canvas_xy_get(eo_e, &x, &y);
+                  evas_event_feed_mouse_out(eo_e, 0, NULL);
+                  e->default_mouse = dev;
+                  evas_event_feed_mouse_in(eo_e, 0, NULL);
+               }
+          }
+        else
           e->default_mouse = dev;
      }
 

-- 


Reply via email to