aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Brachaczek <b.brachaczek@gmail.com>2009-11-13 00:18:00 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-11-20 11:17:44 +1000
commitc6964dd28a114e23de21f91c0323ae4f03fb0f16 (patch)
treef789a9936d3e36149c3acd34b5e1568e33b81a2d
parentRelax checks when reopening devices (diff)
downloadxf86-input-evdev-c6964dd28a114e23de21f91c0323ae4f03fb0f16.tar.gz
xf86-input-evdev-c6964dd28a114e23de21f91c0323ae4f03fb0f16.tar.bz2
xf86-input-evdev-c6964dd28a114e23de21f91c0323ae4f03fb0f16.zip
Set all valuators for relative motion events (#24737)
We should process all the deltas reported by a relative motion device, otherwise some devices such as A4Tech X-750F or similar may trigger a situation when the `v` array contains random values (it isn't initialized anywhere) and later we process them and in effect the mouse cursor "jumps" on the screen. I'm not sure why, but we also must be sure that the `first` and `last` variables reflect the axis map, otherwise the mouse cursor "jumps" on the screen when clicking mouse buttons in some rare cases reported by Bartek Iwaniec on Bugzilla. That's why a simple initialization of the `v` array with zeros isn't sufficient. X.Org Bug 24737 <http://bugs.freedesktop.org/show_bug.cgi?id=24737> Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit c1f16a4f59a584ab4546c2f16e20b06703042057)
-rw-r--r--src/evdev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/evdev.c b/src/evdev.c
index 894aca4..33e02ab 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -440,7 +440,7 @@ EvdevProcessValuators(InputInfoPtr pInfo, int v[MAX_VALUATORS], int *num_v,
for (i = 0; i < REL_CNT; i++)
{
int map = pEvdev->axis_map[i];
- if (pEvdev->delta[i] && map != -1)
+ if (map != -1)
{
v[map] = pEvdev->delta[i];
if (map < first)