http://bugs.winehq.org/show_bug.cgi?id=6971
--- Comment #301 from Forest Hale lordhavoc@ghdigital.com 2009-12-10 11:30:37 --- (In reply to comment #299)
(In reply to comment #297) If you so want to have DGA mouse - why don't you actually look at what it is, how it works, and if it meats the DInput requirements? If it's freezing pointer in place - it's automatically won't work for Wine. that mode already works just fine. It's the non-exclusive background coop level that's needed by soo many apps that doesn't work.
Actually I was saying that DGA mouse freezes the mouse pointer but it can still be forcefully warped by wine, to mimic normal movement and interact with other applications - but it disables mouse acceleration in doing so, so such behavior is only acceptable when the active window has cooperative dinput active, in all other situations the DGA mouse grab must be released and normal mouse movement used.
To the user the only difference between having a cooperative dinput window active and having a normal window active, is that mouse acceleration changes, and there might be a very slight lag (1 refresh).
All normal application interaction would be preserved.
Also you seems to totally ignore what I said here numerous times - warping mouse is out of the question period end of story. You can not make all applications work this way. You will fix one type and break another type.
I did say that DGA support is necessary, I only brought up the "hidden mouse" fallback (where warping is required and the pointer MUST be hidden) as a possible fallback that has many undesirable side effects, I recommended against using such a method if at all possible, because it is not robust at all.
It was only in a summary of possible solutions, and noted as having many problems.
Where as DGA + mouse warping to mimic real movement would be at least somewhat robust.
The best example are all Quake 2+ engine based games that use dinput (Half-Life even tho based on Q2 engine doesn't use dinput at all). These games incorrectly acquire mouse in game mode as non-exclusive background coop. If you start warping mouse in this coop mode you'll break all programs that show system cursor in the menu for example.
You are clearly not understanding what I am talking about then.
This cooperative mode using DGA would ALTER the mouse movement behavior (because wine is really doing the movement), but not disable it, it would still be able to interact with all normal applications even while the cooperative app is focused - but as soon as the app is defocused it would return to normal movement to restore expected behavior (mouse acceleration).
XInput2 does exactly what Wine needs and that's what Wine will use to fix this bug no matter if you like it or not. This means you'll be getting XOrg 7.5 sooner then you wanted.
I look forward to seeing an XInput2 solution.
However users will continue this discussion until everyone is running xorg 7.5 - and I do not expect that to happen for years, there are still people running debian stable and expecting wine to work.