I believe an X extension is needed to completely solve bug 1410: http://bugs.winehq.org/show_bug.cgi?id=1410
On windows, when dinput listens for relative mouse movement, it does so without affecting the cursor's position. Wine implements relative mouse movement by constantly recentering the cursor on the window that requests it and watching it as it moves away from the center. In exclusive mode, this rarely causes problems as that combination makes it impossible to move the mouse on windows. Some apps request relative mouse movement in nonexclusive mode and expect the user to move the mouse normally (but the user can't because the mouse is always being recentered). If wine didn't recenter the mouse, it wouldn't be able to detect mouse input that would bring the mouse beyond the edge of the screen (which windows can do).
Windows probably pulls this off by reading relative mouse movement directly from the device, but I don't think wine developers want to go that route. An X extension would be needed that can detect relative mouse movement that does not generate absolute movement.
-- Vincent Povirk aka MadEwokHerd Primary email: madewokherd@gmail.com Secondary email: madewokherd@comcast.net Tertiary email: vrp5000@psu.edu Jabber: madewokherd@jabber.org