Summary: | Mouse acceleration doesn't work properly | ||
---|---|---|---|
Product: | xorg | Reporter: | Simon Thum <simon.thum> |
Component: | Input/Mouse | Assignee: | Xorg Project Team <xorg-team> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | high | CC: | avery |
Version: | git | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Bug Depends on: | |||
Bug Blocks: | 8583 |
Description
Simon Thum
2006-11-25 11:48:15 UTC
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.