discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=30f1b8b9c3a7df0c55d37c2b35b4364e0433fdb1

commit 30f1b8b9c3a7df0c55d37c2b35b4364e0433fdb1
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Fri Feb 3 15:13:48 2017 -0500

    generically handle relative motion eventing for non-featureful backends
---
 src/bin/e_comp_canvas.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c
index be5f581..becc89f 100644
--- a/src/bin/e_comp_canvas.c
+++ b/src/bin/e_comp_canvas.c
@@ -206,6 +206,20 @@ _e_comp_cb_mouse_wheel(void *d EINA_UNUSED, int t 
EINA_UNUSED, Ecore_Event_Mouse
 static Eina_Bool
 _e_comp_cb_mouse_move(void *d EINA_UNUSED, int t EINA_UNUSED, 
Ecore_Event_Mouse_Move *ev)
 {
+   static int x = -9999, y = -9999;
+
+   if (x == -9999)
+     x = ev->x, y = ev->y;
+   if ((x == ev->x) && (y == ev->y)) return ECORE_CALLBACK_RENEW;
+   if (e_client_focused_get() && (!e_comp_util_mouse_grabbed()))
+     {
+        if ((!e_comp->screen) || (!e_comp->screen->relative_motion))
+          {
+             e_comp_wl_extension_relative_motion_event(ecore_time_unix_get() * 
1000ULL,
+               ev->x - x, ev->y - y, 0, 0);
+          }
+     }
+   x = ev->x, y = ev->y;
    return e_comp_wl_grab_client_mouse_move(ev);
 }
 #endif

-- 


Reply via email to