summaryrefslogtreecommitdiffstats
path: root/abs/core/xf86-input-evdev/initialize-valuators.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/xf86-input-evdev/initialize-valuators.patch')
-rw-r--r--abs/core/xf86-input-evdev/initialize-valuators.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/abs/core/xf86-input-evdev/initialize-valuators.patch b/abs/core/xf86-input-evdev/initialize-valuators.patch
new file mode 100644
index 0000000..47b02db
--- /dev/null
+++ b/abs/core/xf86-input-evdev/initialize-valuators.patch
@@ -0,0 +1,61 @@
+From ed47c7f33e315f163a6aebeb3e1c8947004576fd Mon Sep 17 00:00:00 2001
+From: Bartosz Brachaczek <b.brachaczek@gmail.com>
+Date: Tue, 10 Aug 2010 20:31:00 +0000
+Subject: evdev: Revert "Set all valuators for relative motion events (#24737)"
+
+It isn't necessary to post zero-deltas to X Server. In order not to post
+uninitialized "v" array we should rather simply initialize it.
+
+This reverts commit c1f16a4f59a584ab4546c2f16e20b06703042057.
+
+Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
+Tested-by: Bartek Iwaniec <hash87@gmail.com>
+Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+diff --git a/src/evdev.c b/src/evdev.c
+index 5ea230c..bdac330 100644
+--- a/src/evdev.c
++++ b/src/evdev.c
+@@ -386,7 +386,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 (map != -1)
++ if (pEvdev->delta[i] && map != -1)
+ {
+ v[map] = pEvdev->delta[i];
+ if (map < first)
+--
+cgit v0.8.3-6-g21f6
+From ec6cb31cc47eed3ccba4c906ca6c54b99136e9eb Mon Sep 17 00:00:00 2001
+From: Bartosz Brachaczek <b.brachaczek@gmail.com>
+Date: Tue, 10 Aug 2010 20:31:37 +0000
+Subject: evdev: Initialize valuators array. (#24737)
+
+The array needs to be filled with zeros, otherwise we may end up sending
+it with random values if non-zero values aren't in one row (which is the
+case for A4Tech X-750F which sends REL_MISC events without a reason).
+
+X.Org Bug 24737 <http://bugs.freedesktop.org/show_bug.cgi?id=24737>
+
+Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
+Tested-by: Bartek Iwaniec <hash87@gmail.com>
+Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+diff --git a/src/evdev.c b/src/evdev.c
+index bdac330..512e957 100644
+--- a/src/evdev.c
++++ b/src/evdev.c
+@@ -661,7 +661,7 @@ static void
+ EvdevProcessSyncEvent(InputInfoPtr pInfo, struct input_event *ev)
+ {
+ int num_v = 0, first_v = 0;
+- int v[MAX_VALUATORS];
++ int v[MAX_VALUATORS] = {};
+ EvdevPtr pEvdev = pInfo->private;
+
+ EvdevProcessValuators(pInfo, v, &num_v, &first_v);
+--
+cgit v0.8.3-6-g21f6