$NetBSD$ 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 2009-02-22 17:41:51.000000000 +0900 +++ dix/getevents.c @@ -621,9 +621,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