In current git, the polynomial acceleration obtained by e.g. >xset n 0 is broken. Slow movements are often discarded, as if no movement took place. I noted when doing bug#8583 so I can tell (most probably) it shows up if the acceleration function does actually decelerate, as is the case on slow moves.
The behaviour was caused by wrong int/float conversions. I'll fix in bug#8583.
Mass reopen. The "REMIND" resolution is lame, I'm deleting it. Consider yourself reminded.
(In reply to comment #1) > The behaviour was caused by wrong int/float conversions. > I'll fix in bug#8583. Simon: do you have a patch that can be applied to current master to fix this? 8583 is a bit too excessive for now.
dropping from 1.4.1 blocker, as #8353's fix is a bit too invasive.
The fix is just a one-word exchange in inputstr.h: typedef struct _ValuatorClassRec { ... float dxremaind, dyremaind; /* for acceleration */ ... } ValuatorClassRec, *ValuatorClassPtr; In my tests that was all it took and it should be ABI-compatible as long as no one actually reads those fields (except the server) plus the platform has identical alignment and size for int/float. IMHO it's feasible, and it just restores the state it had before hotplug (I guess; dunno who actually changed it or why).
As a user, I'd like to see this fix (actually, 8583 looks even better, but I realize it's a more extensive change). "xset m n 0" definitely feels the best, but I can literally move my mouse across the whole mousepad (slowly) without moving at all on screen.
On Sat, May 17, 2008 at 09:44:16AM -0700, bugzilla-daemon@freedesktop.org wrote: > --- Comment #5 from Simon Thum <simon.thum@gmx.de> 2008-05-17 09:44:16 PST --- > The fix is just a one-word exchange in inputstr.h: > > typedef struct _ValuatorClassRec { > ... > float dxremaind, dyremaind; /* for acceleration */ > ... > } ValuatorClassRec, *ValuatorClassPtr; > > In my tests that was all it took and it should be ABI-compatible as long as no > one actually reads those fields (except the server) plus the platform has > identical alignment and size for int/float. Unfortunately it isn't. Drivers have access to the valuator struct, so it must be considered as an ABI change.
(In reply to comment #7) > Unfortunately it isn't. Drivers have access to the valuator struct, so it must > be considered as an ABI change. Correct. But it may well be an ABI break without victims. driver # grep dxremaind -R * gave me no source matches (though many binary ones). I'd guess that other things cause more end-user breakage.
Pushed to git master as 0050165a67bb462e0bf644a11644ad9d587c62bb.
Also cherrypicked to 1.5 branch.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.