On Fri, Sep 10, 2021 at 01:06:38PM -0400, Connor McAdams wrote:
Windows 7 sometimes sends an optional WM_WINDOWPOSCHANGED message along with the optional WM_WINDOWPOSCHANGING message.
Signed-off-by: Connor McAdams cmcadams@codeweavers.com
dlls/user32/tests/msg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 9133d76554c..d480b903e1f 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -13462,7 +13462,8 @@ static const struct message WmMinimize_3[] = { { WM_WINDOWPOSCHANGING, sent|wparam, SWP_SHOWWINDOW|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOCOPYBITS|SWP_STATECHANGED, 0, SWP_NOACTIVATE }, { HCBT_ACTIVATE, hook|optional }, { WM_WINDOWPOSCHANGING, sent|wparam|optional, SWP_NOSIZE|SWP_NOMOVE },
- { WM_WINDOWPOSCHANGED, sent|wparam, SWP_SHOWWINDOW|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOCOPYBITS|SWP_STATECHANGED, 0, SWP_NOACTIVATE },
- { WM_WINDOWPOSCHANGED, sent|optional },
- { WM_WINDOWPOSCHANGED, sent|optional }, { WM_MOVE, sent|defwinproc }, { WM_SIZE, sent|wparam|lparam|defwinproc, SIZE_MINIMIZED, 0 }, { 0 }
-- 2.25.1
Some context behind this change:
Windows 7 seems to occasionally send a WM_WINDOWPOSCHANGED prior to the one currently in the sequence. Problem is, its flags are SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE which aren't the same as the flags of the message currently in the sequence. Even if we set this new WM_WINDOWPOSCHANGED message to optional in the sequence, it'll still try to test the flags, which in the circumstance where the optional message isn't sent, results in a test failure. The only sane way to do this seems to be to stop checking for flags on either message in the sequence.