[Bug 8854] Unable to get keyboard / mouse input in multiple games

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Dec 17 18:30:43 CST 2014


https://bugs.winehq.org/show_bug.cgi?id=8854

Sebastian Lackner <sebastian at fds-team.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sebastian at fds-team.de

--- Comment #98 from Sebastian Lackner <sebastian at fds-team.de> ---
A fix for this issue was added to Wine Staging:
https://github.com/wine-compholio/wine-staging/blob/master/patches/dinput-Events/0001-dinput-Ensure-X11-input-events-are-handled-even-with.patch

For a more detailed analysis including a couple of test programs see the
corresponding Wine Staging bug report:
https://github.com/wine-compholio/wine-staging/issues/224

To sum up what the problem is here:

--- snip ---
Michael Müller did a full analysis of this problem, which reveals that the
issue
is caused by the way user32 and winex11 works. Wine establishes separate X
server
connections for each thread, so each thread needs to call
USER_Driver->pMsgWaitForMultipleObjectsEx from time to time to ensure that
events
are properly forwarded to the wineserver. On Windows all this isn't necessary
because the kernel itself is responsible for generating window events, and
there
is no need to pass them from the application to the kernel.

A proper fix would mean to rewrite winex11 to always handle X11 events
asynchronously, and without explicit need for a message loop. Since such a
rewrite
is rather unlikely and will not happen during the near future, adding a
workaround
till a better solution is found. This workaround will have no disadvantage,
except
that this isn't a complete fix. Please note that not only hooks are affected by
this issue, also *RawInput* functions show the same issue - which is the reason
why
native dinput will still not work (already tested).
--- snip ---

Please note that since its not a complete fix, it will most likely be
impossible to get something like that upstream.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list