http://bugs.winehq.org/show_bug.cgi?id=4777
Summary: Mouse Absolute vs. Relative Incorrect Behaviour (doesn't match Windows) Product: Wine Version: unspecified Platform: PC URL: http://getmyth.com/ OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-directx-dinput AssignedTo: wine-bugs@winehq.org ReportedBy: myrd@projectmagma.net
The bug is in the file: http://source.winehq.org/source/dlls/dinput/mouse.c
The problem is when a new Mouse Device is created, the boolean "absolute" is FALSE in WINE (in the code). When absolute is FALSE, whenever Acquire is called, WINE will center the mouse.
The only way for WINE to set "absolute" to true, and therefore prevent the unwanted centering, is if a specific call to SetProperty is made.
Windows does not require this. That is, Windows will not center the mouse every time Acquire is called (like WINE does) if no call to SetProperty has been made.
A test application is available to demonstrate this bug. Simply go to http://getmyth.com/ and download the Myth II demo. Run it under WINE and under Windows (all versions, from 95 to XP behave the same), and observe how WINE centers the cursor (and makes it unuseable), while Windows does not.
Wine's behavior needs to be made to match Windows, and that is - not to center the mouse by default.