aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/evas/canvas/evas_device.c
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-06-16 15:03:09 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-06-16 12:23:07 -0400
commitabe4c8d772256c40b3b67c8035e333c1177ed6c4 (patch)
treea7011961ec994b82d042f5ee819242452f02dbdd /src/lib/evas/canvas/evas_device.c
parentecore-evas: use pointer device with mouse move events instead of seat (diff)
downloadefl-abe4c8d772256c40b3b67c8035e333c1177ed6c4.tar.gz
evas: only feed canvas out/in when changing default pointer if pointer is in
Diffstat (limited to 'src/lib/evas/canvas/evas_device.c')
-rw-r--r--src/lib/evas/canvas/evas_device.c9
1 files 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