34 lines
1.2 KiB
Diff
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
|