http://bugs.winehq.org/show_bug.cgi?id=1410
------- Additional Comments From lionel.ulmer@free.fr 2005-07-05 15:27 ------- I think this is the worse case of DInput breakage I know :-)
Basically, the application is, after each DInput call doing a 'SetCursorPos' itself in the middle of the screen (for what reason, I have no clue at all). And as both middles do not exactly match (for other reasons), there are 'spurious' mouse moves generated => once the cursor is moved, it will always move up.
Best way to fix is to integrate real relative mouse movement reporting to the X server (proposal sent to XOrg list - waiting for an answer) or - at the very least - move all the mouse warping stuff to the X11 driver (which would then know that it's in relative mouse movement mode and thus not do the application-asked warp).