summaryrefslogtreecommitdiff
path: root/x11/modular-xorg-server/patches/patch-aa
blob: 965b9e02a1b7a721cee47ef03e1ec65bd9fc5026 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
$NetBSD: patch-aa,v 1.4 2008/09/18 20:56:01 bjs Exp $

On Friday 04 July 2008, Joerg Sonnenberger wrote:
> On Thu, Jul 03, 2008 at 07:52:31PM -0600, Sverre Froyen wrote:
> > I've tracked the jumping cursor issue down to the function
> > acceleratePointer in dix/getevents.c.
>
> All this issues in the past happened because some very smart guys
> decided to do random broken things from signal context. Which is why
> this is extremely hard to trace down.

I still see the jumps in 1.4.2.  Perhaps my workaround (attached) could be 
included until a proper fix is developed?

--- dix/getevents.c.orig	2008-06-29 00:23:13.000000000 -0400
+++ dix/getevents.c
@@ -613,9 +613,15 @@ GetPointerEvents(xEvent *events, DeviceI
         clipAxis(pDev, 1, &y);
     }
     else {
-        if (flags & POINTER_ACCELERATE)
+        if (flags & POINTER_ACCELERATE) {
+            int x_in;
+            if (num_valuators >= 1)
+                x_in = valuators[0];
             acceleratePointer(pDev, first_valuator, num_valuators,
                               valuators);
+            if (num_valuators >= 1 && valuators[0] < -3000)
+                valuators[0] = x_in;
+        }
 
         if (pDev->coreEvents) {
             /* Get and convert the core pointer coordinate space into