[PATCH] dix: fix inverted handling of legacy scroll button events

Max Schwarz Max at x-quadraht.de
Tue Oct 4 14:55:32 PDT 2011


This bug led to inverted scrolling axes with legacy drivers that
do not support smooth scrolling classes.

Signed-off-by: Max Schwarz <Max at x-quadraht.de>
---
Applies on Peter's next branch.

 dix/getevents.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/dix/getevents.c b/dix/getevents.c
index ebf2653..97c3937 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -1330,21 +1330,22 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type,
         double val, adj;
         int axis;
 
+        /* Up is negative on valuators, down positive */
         switch (buttons) {
         case 4:
-            adj = 1.0;
+            adj = -1.0;
             axis = v_scroll_axis;
             break;
         case 5:
-            adj = -1.0;
+            adj = 1.0;
             axis = v_scroll_axis;
             break;
         case 6:
-            adj = 1.0;
+            adj = -1.0;
             axis = h_scroll_axis;
             break;
         case 7:
-            adj = -1.0;
+            adj = 1.0;
             axis = h_scroll_axis;
             break;
         default:
-- 
1.7.4.1



More information about the xorg-devel mailing list