Summary: | Getting motion history for a wacom tablet through XGetDeviceMotionEvents returns wrong coords | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Alexia Death <alexiadeath> | ||||||
Component: | Input/other | Assignee: | Peter Hutterer <peter.hutterer> | ||||||
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||||
Severity: | normal | ||||||||
Priority: | medium | ||||||||
Version: | 7.4 (2008.09) | ||||||||
Hardware: | Other | ||||||||
OS: | All | ||||||||
Whiteboard: | |||||||||
i915 platform: | i915 features: | ||||||||
Bug Depends on: | |||||||||
Bug Blocks: | 17452 | ||||||||
Attachments: |
|
Description
Alexia Death
2008-12-25 10:44:18 UTC
Created attachment 21789 [details] [review] 0001-Xi-call-CheckMotion-for-floating-SDs-too.patch From my initial testing so far there's two issues (valid for floating slave devices): 1) the event coordinates remain the same. 2) the history buffer is scaled to screen coordinates This patch fixes 1) by calling CheckMotion for floating slave devices to ensure the DIX sprite is updated. Need to look further into 2). Created attachment 21824 [details] [review] 0001-dix-drop-x-y-back-into-last.valuators-before-updati.patch Something like this should do dix: drop x/y back into last.valuators before updating the history (#19285) positionSprite needs to scale to screen coordinates and in the process of doing so alters dev->last.valuators[0:1]. Drop the real coordinates back after finishing and before updating the motion history. This way, we don't push the screen coordinates into the motion history. With these two patches the issue is corrected for me. Thanks :D. ps: tested by applying to Jaunty's xsever-xorg source package. Pushed as 9bf77569cc8f9b0cc25c99487672d375d7c32f99 and 56efbc0986e782da45addb05ece9f456d41d7a90. Thanks for testing. Fixed in 6be355b8e8cabeb5832ce9970a83782ea46fd4d1 |
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.