https://bugs.winehq.org/show_bug.cgi?id=54031
Bug ID: 54031 Summary: user32:msg - test_SendMessage_other_thread() broken by WM_WINDOWPOSCHANGING on Windows dual-monitor configs Product: Wine Version: unspecified Hardware: x86-64 OS: Windows Status: NEW Severity: normal Priority: P2 Component: user32 Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com
user32:msg - test_SendMessage_other_thread() sometimes gets an unexpected WM_WINDOWPOSCHANGING message:
msg.c:19053: Test failed: wrong status 00480048 msg.c:19091: Test failed: SendMessage from other thread 5: 0: the msg sequence is not complete: expected 0000 - actual 0046 msg.c:19091: Failed sequence SendMessage from other thread 5: msg.c:19091: 0: expected: nothing - actual: MsgCheckProc: 006F025C WM_WINDOWPOSCHANGING wp 00000000 lp 0022fc40 after 00000000 x 100 y 100 cx 200 cy 200 flags SWP_NOACTIVATE|SWP_NOZORDER (flags 19) msg.c:19091: 1: expected: nothing - actual: MsgCheckProc: 006F025C 0024 wp 00000000 lp 0022f700 (flags 39) msg.c:19059: Failed sequence SendMessage from other thread 1: msg.c:19059: 0: expected: msg 0402 - actual: MsgCheckProc: 007102CA 0402 wp 00000000 lp 00000000 (flags 19) msg.c:19059: 1: expected: msg 0400 - actual: MsgCheckProc: 007102CA 0400 wp 00000000 lp 00000000 (flags 19) msg.c:19079: Failed sequence SendMessage from other thread 3: msg.c:19079: 0: expected: msg 0403 - actual: MsgCheckProc: 007102CA 0403 wp 00000000 lp 00000000 (flags 19) msg.c:19079: 1: expected: msg 0401 - actual: MsgCheckProc: 007102CA 0401 wp 00000000 lp 00000000 (flags 19) [53435] msg.c:19087: Test failed: wrong status 00400040 msg.c:19091: Failed sequence SendMessage from other thread 5: msg.c:18487: Failed sequence SetFocus on a desktop window: msg.c:18497: Failed sequence SetFocus on another thread window: msg.c:18517: Failed sequence SetActiveWindow on a desktop window: msg.c:18527: Failed sequence SetActiveWindow on another thread window: msg.c:18592: Failed sequence SetFocus on a child window: msg.c:18592: 0: expected: hook 0009 - actual: CBT: hook 9 (HCBT_SETFOCUS) wp 005e0252 lp 002f0278 msg.c:12896: QS_RAWINPUT not supported on this platform msg.c:12921: Test failed: wrong qstatus 00000000
See https://test.winehq.org/data/patterns.html#user32:msg
This seems to only happen on dual-monitor configurations, most frequently on w1064-2qxl but also regularly on w7u-2qxl.
https://bugs.winehq.org/show_bug.cgi?id=54031
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source, testcase
https://bugs.winehq.org/show_bug.cgi?id=54031
--- Comment #1 from Esme Povirk madewokherd@gmail.com --- 0024 (the message after WM_WINDOWPOSCHANGING) is WM_GETMINMAXINFO
https://bugs.winehq.org/show_bug.cgi?id=54031
--- Comment #2 from Esme Povirk madewokherd@gmail.com --- This was NOT fixed by https://gitlab.winehq.org/wine/wine/-/merge_requests/3862
It's odd because these should be no-ops. Size and position are unchanged, along with SWP_NOACTIVATE|SWP_NOZORDER. Documentation for SetWindowPos suggests something else may have been changed which requires a SetWindowPos call, but it advises SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_FRAMECHANGED in that case.
I don't know what we could be doing to trigger this, but I also don't see this particular message sequence happening in other circumstances, so I guess it makes sense to add these as optional?