void-packages/templates/xorg-server-dix-getevents-c...

34 lines
1.2 KiB
Diff

$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