Alexandre Julliard pushed to branch master at wine / wine
Commits: d0c737ca by Rémi Bernon at 2025-10-20T12:19:21+02:00 server: Don't set QS_HARDWARE for every hardware message.
QS_INPUT is already meant for hardware messages, we only need a separate bit for internal hardware messages.
- - - - - cf56651e by Rémi Bernon at 2025-10-20T12:19:22+02:00 win32u: Only return from NtWaitForMultipleObjects if signaled.
There's only driver events, with QS_DRIVER, internal hardware messages, with QS_HARDWARE, or input hardware messages with QS_INPUT and we should avoid returning from the wait unnecessarily.
Some applications like iTunes, simply call MsgWaitForMultipleObjects in a loop with an empty mask and without processing any message. They don't expect the wait to return spuriously more than a couple of times (which is allowed and happens on windows when focus changes for instance).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58793
- - - - - 762b0ae3 by Rémi Bernon at 2025-10-20T12:19:23+02:00 win32u: Restore queue masks after processing driver events.
Drivers still send some messages around, and that will update the queue masks before waiting for the message reply. We need to restore the masks back to what the wait would expect now that we are looping until queue gets signaled.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58816
- - - - -
4 changed files:
- dlls/win32u/dce.c - dlls/win32u/message.c - dlls/win32u/ntuser_private.h - server/queue.c
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/4a74c7c1305d11af32b4169e472653...