discomfitor pushed a commit to branch master.

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

commit abe4c8d772256c40b3b67c8035e333c1177ed6c4
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Jun 16 15:03:09 2017 -0400

    evas: only feed canvas out/in when changing default pointer if pointer is in
    
    ref 6775b23212305c957f4447c708053585f361bb86
---
 src/lib/evas/canvas/evas_device.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/lib/evas/canvas/evas_device.c 
b/src/lib/evas/canvas/evas_device.c
index 87f4f47a03..c5ae77b10b 100644
--- a/src/lib/evas/canvas/evas_device.c
+++ b/src/lib/evas/canvas/evas_device.c
@@ -198,9 +198,14 @@ evas_device_add_full(Evas *eo_e, const char *name, const 
char *desc,
                  (parent_dev == e->default_seat) &&
                  (evas_device_class_get(e->default_mouse) != 
EVAS_DEVICE_CLASS_MOUSE))
                {
-                  evas_event_feed_mouse_out(eo_e, 0, NULL);
+                  Evas_Pointer_Data *pdata = 
_evas_pointer_data_by_device_get(e, e->default_mouse);
+                  Eina_Bool inside = pdata->seat->inside;
+
+                  if (inside)
+                    evas_event_feed_mouse_out(eo_e, 0, NULL);
                   e->default_mouse = dev;
-                  evas_event_feed_mouse_in(eo_e, 0, NULL);
+                  if (inside)
+                    evas_event_feed_mouse_in(eo_e, 0, NULL);
                }
           }
         else

-- 


Reply via email to