https://bugs.winehq.org/show_bug.cgi?id=55417
Bug ID: 55417 Summary: user32:msg - test_showwindow() sometimes fails due to an unexpected WM_SYNCPAINT message on Windows 10 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_showwindow() sometimes fails due to an unexpected WM_SYNCPAINT message on Windows 10:
msg.c:5016: Test failed: ShowWindow(SW_SHOWNA) on visible top level window: 0: the msg 0x0018 was expected, but got msg 0x0088 instead msg.c:5016: Test failed: ShowWindow(SW_SHOWNA) on visible top level window: 1: the msg 0x0046 was expected, but got msg 0x0018 instead msg.c:5016: Test failed: ShowWindow(SW_SHOWNA) on visible top level window: 6: the msg sequence is not complete: expected 0000 - actual 0046
See https://test.winehq.org/data/patterns.html#user32:msg
Where: 0x18 == WM_SHOWWINDOW 0x46 == WM_WINDOWPOSCHANGING 0x88 == WM_SYNCPAINT
Maybe the WM_SYNCPAINT should just be added as optional.
This only happened 4 times in the past 8 months: * 2022-12-09 win21H1_newtb-w10pro64-zh-CN-64 * 2023-03-27 win21H1_newtb-w10pro64-ko-64 * 2023-06-09 win21H1_newtb-w10pro64-ja-64 * 2023-08-04 win21H1_newtb-w10pro64-ja-64
https://bugs.winehq.org/show_bug.cgi?id=55417
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |madewokherd@gmail.com Keywords| |source, testcase
https://bugs.winehq.org/show_bug.cgi?id=55417
--- Comment #1 from Esme Povirk madewokherd@gmail.com --- Do you have a sense of whether WM_SYNCPAINT usually happens at consistent times? From what I understand, it must have been caused by something happening in another thread. Since this particular test doesn't involve multiple threads, I assume it's caused by another process (perhaps a window being hidden).
https://bugs.winehq.org/show_bug.cgi?id=55417
--- Comment #2 from Esme Povirk madewokherd@gmail.com --- I'm noticing these are all CJK configurations. I wonder if this has something to do with the input method.
https://bugs.winehq.org/show_bug.cgi?id=55417
--- Comment #3 from Esme Povirk madewokherd@gmail.com --- My best guess: A tooltip or other temporary window was displayed with WS_EX_TOPMOST. The first ShowWindow call causes it to hide itself (for example, if the mouse is no longer hovering over the owner of a tooltip), reveal some part of the newly-shown window, and send WM_SYNCPAINT. The second call processes sent messages before showing the window.
I'm not sure how to test that theory though.
https://bugs.winehq.org/show_bug.cgi?id=55417
--- Comment #4 from François Gouget fgouget@codeweavers.com --- Unfortunately I don't have any insight into the timing of the WM_SYNCPAINT messages. I normally come in when the WineTest report lands on test.winehq.org and by then there is no record of what was happening on the screen at the time user32:msg was running (screenshots might help here but that's probably dead).