Signed-off-by: Zebediah Figura z.figura12@gmail.com --- This series is aimed towards replacing our implementation of minimized windows, from Windows 3.1-style icons to modern titlebars. This makes several applications behave better, including LTSpice [1] and Mirror's Edge [2], and makes UI behaviour (namely, in MDI applications) more consistent with what users probably expect.
[1] https://bugs.winehq.org/show_bug.cgi?id=7287 [2] https://github.com/ValveSoftware/Proton/issues/355
dlls/user32/tests/win.c | 192 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c index e55c1399a5..1bd555895c 100644 --- a/dlls/user32/tests/win.c +++ b/dlls/user32/tests/win.c @@ -10766,6 +10766,197 @@ static void test_IsWindowEnabled(void) DestroyWindow(hwnd); }
+static void test_window_placement(void) +{ + RECT orig = {100, 200, 300, 400}, orig2 = {200, 300, 400, 500}, rect; + WINDOWPLACEMENT wp = {sizeof(wp)}; + HWND hwnd; + BOOL ret; + + hwnd = CreateWindowA("MainWindowClass", "wp", WS_OVERLAPPEDWINDOW, + orig.left, orig.top, orig.right - orig.left, orig.bottom - orig.top, 0, 0, 0, 0); + ok(!!hwnd, "failed to create window, error %u\n", GetLastError()); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(wp.showCmd == SW_SHOWNORMAL, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == -1 && wp.ptMinPosition.y == -1, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); + ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + + ShowWindow(hwnd, SW_MINIMIZE); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(!wp.flags, "got flags %#x\n", wp.flags); + ok(wp.showCmd == SW_SHOWMINIMIZED, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); + ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + + ShowWindow(hwnd, SW_RESTORE); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(wp.showCmd == SW_SHOWNORMAL, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); + ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + + ShowWindow(hwnd, SW_MAXIMIZE); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(wp.showCmd == SW_SHOWMAXIMIZED, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); +todo_wine + ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + + SetWindowPos(hwnd, 0, 100, 100, 100, 100, SWP_NOZORDER | SWP_NOACTIVATE); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(wp.showCmd == SW_SHOWMAXIMIZED, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); + ok(wp.ptMaxPosition.x == 100 && wp.ptMaxPosition.y == 100, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + + ShowWindow(hwnd, SW_MINIMIZE); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(wp.flags == WPF_RESTORETOMAXIMIZED, "got flags %#x\n", wp.flags); + ok(wp.showCmd == SW_SHOWMINIMIZED, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); +todo_wine + ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + + ShowWindow(hwnd, SW_RESTORE); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(wp.showCmd == SW_SHOWMAXIMIZED, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); +todo_wine + ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + + ShowWindow(hwnd, SW_RESTORE); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(wp.showCmd == SW_SHOWNORMAL, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); +todo_wine + ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + + wp.flags = WPF_SETMINPOSITION; + wp.ptMinPosition.x = wp.ptMinPosition.y = 100; + wp.ptMaxPosition.x = wp.ptMaxPosition.y = 100; + wp.rcNormalPosition = orig2; + ret = SetWindowPlacement(hwnd, &wp); + ok(ret, "failed to set window placement, error %u\n", GetLastError()); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(wp.showCmd == SW_SHOWNORMAL, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == 100 && wp.ptMinPosition.y == 100, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); +todo_wine + ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig2), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&rect, &orig2), "got window rect %s\n", wine_dbgstr_rect(&rect)); + + ShowWindow(hwnd, SW_MINIMIZE); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(!wp.flags, "got flags %#x\n", wp.flags); + ok(wp.showCmd == SW_SHOWMINIMIZED, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); +todo_wine + ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig2), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + + ShowWindow(hwnd, SW_RESTORE); + + wp.flags = WPF_SETMINPOSITION; + wp.showCmd = SW_MINIMIZE; + wp.ptMinPosition.x = wp.ptMinPosition.y = 100; + wp.ptMaxPosition.x = wp.ptMaxPosition.y = 100; + wp.rcNormalPosition = orig; + ret = SetWindowPlacement(hwnd, &wp); + ok(ret, "failed to set window placement, error %u\n", GetLastError()); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(!wp.flags, "got flags %#x\n", wp.flags); + ok(wp.showCmd == SW_SHOWMINIMIZED, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); +todo_wine + ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + + ShowWindow(hwnd, SW_RESTORE); + + wp.flags = WPF_SETMINPOSITION; + wp.showCmd = SW_MAXIMIZE; + wp.ptMinPosition.x = wp.ptMinPosition.y = 100; + wp.ptMaxPosition.x = wp.ptMaxPosition.y = 100; + wp.rcNormalPosition = orig; + ret = SetWindowPlacement(hwnd, &wp); + ok(ret, "failed to set window placement, error %u\n", GetLastError()); + + ret = GetWindowPlacement(hwnd, &wp); + ok(ret, "failed to get window placement, error %u\n", GetLastError()); + ok(wp.showCmd == SW_SHOWMAXIMIZED, "got show cmd %u\n", wp.showCmd); + ok(wp.ptMinPosition.x == 100 && wp.ptMinPosition.y == 100, + "got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y); +todo_wine + ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1, + "got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y); + ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n", + wine_dbgstr_rect(&wp.rcNormalPosition)); + + DestroyWindow(hwnd); +} + START_TEST(win) { char **argv; @@ -10923,6 +11114,7 @@ START_TEST(win) test_minimize_window(hwndMain); test_destroy_quit(); test_IsWindowEnabled(); + test_window_placement();
/* add the tests above this line */ if (hhook) UnhookWindowsHookEx(hhook);
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/user32/tests/win.c | 125 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c index 1bd555895c..aa350aac01 100644 --- a/dlls/user32/tests/win.c +++ b/dlls/user32/tests/win.c @@ -6725,6 +6725,130 @@ static void test_ShowWindow(void) flush_events(TRUE); }
+static void test_ShowWindow_owned(HWND hwndMain) +{ + MONITORINFO mon_info = {sizeof(mon_info)}; + RECT rect, orig, expect; + BOOL ret; + HWND hwnd, hwnd2; + LONG style; + + GetMonitorInfoW(MonitorFromWindow(hwndMain, MONITOR_DEFAULTTOPRIMARY), &mon_info); + SetRect(&orig, 20, 20, 210, 110); + hwnd = CreateWindowA("MainWindowClass", "owned", WS_CAPTION | WS_SYSMENU | + WS_MINIMIZEBOX | WS_MAXIMIZEBOX, + orig.left, orig.top, orig.right - orig.left, + orig.bottom - orig.top, hwndMain, 0, 0, NULL); + ok(!!hwnd, "failed to create window, error %u\n", GetLastError()); + hwnd2 = CreateWindowA("MainWindowClass", "owned2", WS_CAPTION | WS_SYSMENU | + WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_VISIBLE, + orig.left, orig.top, orig.right - orig.left, + orig.bottom - orig.top, hwndMain, 0, 0, NULL); + ok(!!hwnd2, "failed to create window, error %u\n", GetLastError()); + + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(!(style & WS_VISIBLE), "window should not be visible\n"); + ok(!(style & WS_MINIMIZE), "window should not be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&orig, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&orig), wine_dbgstr_rect(&rect)); + + ret = ShowWindow(hwnd, SW_SHOW); + ok(!ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(!(style & WS_MINIMIZE), "window should not be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&orig, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&orig), wine_dbgstr_rect(&rect)); + + ret = ShowWindow(hwnd, SW_MINIMIZE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(style & WS_MINIMIZE, "window should be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + SetRect(&expect, 0, mon_info.rcWork.bottom - GetSystemMetrics(SM_CYMINIMIZED), + GetSystemMetrics(SM_CXMINIMIZED), mon_info.rcWork.bottom); + todo_wine + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + /* shouldn't be able to resize minimized windows */ + ret = SetWindowPos(hwnd, 0, 0, 0, 200, 200, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER); + ok(ret, "wrong ret %d\n", ret); + GetWindowRect(hwnd, &rect); + todo_wine + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + /* multiple minimized owned windows stack next to each other (and eventually + * on top of each other) */ + OffsetRect(&expect, GetSystemMetrics(SM_CXMINIMIZED), 0); + ret = ShowWindow(hwnd2, SW_MINIMIZE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd2, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(style & WS_MINIMIZE, "window should be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd2, &rect); + todo_wine + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + ShowWindow(hwnd, SW_RESTORE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(!(style & WS_MINIMIZE), "window should not be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&orig, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&orig), wine_dbgstr_rect(&rect)); + + ShowWindow(hwnd, SW_MAXIMIZE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(!(style & WS_MINIMIZE), "window should be minimized\n"); + ok(style & WS_MAXIMIZE, "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + expect = mon_info.rcWork; + AdjustWindowRectEx(&expect, GetWindowLongA(hwnd, GWL_STYLE) & ~WS_BORDER, + 0, GetWindowLongA(hwnd, GWL_EXSTYLE)); + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + /* maximized windows can be resized */ + ret = SetWindowPos(hwnd, 0, 300, 300, 200, 200, SWP_NOACTIVATE | SWP_NOZORDER); + ok(ret, "wrong ret %d\n", ret); + GetWindowRect(hwnd, &rect); + SetRect(&expect, 300, 300, 500, 500); + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + ShowWindow(hwnd, SW_RESTORE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(!(style & WS_MINIMIZE), "window should not be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&orig, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&orig), wine_dbgstr_rect(&rect)); + + DestroyWindow(hwnd2); + DestroyWindow(hwnd); +} + static DWORD CALLBACK enablewindow_thread(LPVOID arg) { HWND hwnd = arg; @@ -11089,6 +11213,7 @@ START_TEST(win) test_SetWindowLong(); test_set_window_style(); test_ShowWindow(); + test_ShowWindow_owned(hwndMain); test_EnableWindow(); test_gettext(); test_GetUpdateRect();
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47393
Your paranoid android.
=== wvistau64 (32 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,713) win.c:10932: Test failed: got minimized pos (0,713) win.c:10944: Test failed: got minimized pos (0,713) win.c:10957: Test failed: got minimized pos (0,713) win.c:10970: Test failed: got minimized pos (0,713) win.c:10983: Test failed: got minimized pos (0,713) win.c:10996: Test failed: got minimized pos (0,713) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== wvistau64_zh_CN (32 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,712) win.c:10932: Test failed: got minimized pos (0,712) win.c:10944: Test failed: got minimized pos (0,712) win.c:10957: Test failed: got minimized pos (0,712) win.c:10970: Test failed: got minimized pos (0,712) win.c:10983: Test failed: got minimized pos (0,712) win.c:10996: Test failed: got minimized pos (0,712) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== wvistau64_fr (32 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,713) win.c:10932: Test failed: got minimized pos (0,713) win.c:10944: Test failed: got minimized pos (0,713) win.c:10957: Test failed: got minimized pos (0,713) win.c:10970: Test failed: got minimized pos (0,713) win.c:10983: Test failed: got minimized pos (0,713) win.c:10996: Test failed: got minimized pos (0,713) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== wvistau64_he (32 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,713) win.c:10932: Test failed: got minimized pos (0,713) win.c:10944: Test failed: got minimized pos (0,713) win.c:10957: Test failed: got minimized pos (0,713) win.c:10970: Test failed: got minimized pos (0,713) win.c:10983: Test failed: got minimized pos (0,713) win.c:10996: Test failed: got minimized pos (0,713) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== w2008s64 (32 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,716) win.c:10932: Test failed: got minimized pos (0,716) win.c:10944: Test failed: got minimized pos (0,716) win.c:10957: Test failed: got minimized pos (0,716) win.c:10970: Test failed: got minimized pos (0,716) win.c:10983: Test failed: got minimized pos (0,716) win.c:10996: Test failed: got minimized pos (0,716) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== w7u (32 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,701) win.c:10932: Test failed: got minimized pos (0,701) win.c:10944: Test failed: got minimized pos (0,701) win.c:10957: Test failed: got minimized pos (0,701) win.c:10970: Test failed: got minimized pos (0,701) win.c:10983: Test failed: got minimized pos (0,701) win.c:10996: Test failed: got minimized pos (0,701) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== w7pro64 (32 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,701) win.c:10932: Test failed: got minimized pos (0,701) win.c:10944: Test failed: got minimized pos (0,701) win.c:10957: Test failed: got minimized pos (0,701) win.c:10970: Test failed: got minimized pos (0,701) win.c:10983: Test failed: got minimized pos (0,701) win.c:10996: Test failed: got minimized pos (0,701) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== w8 (32 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,700) win.c:10932: Test failed: got minimized pos (0,700) win.c:10944: Test failed: got minimized pos (0,700) win.c:10957: Test failed: got minimized pos (0,700) win.c:10970: Test failed: got minimized pos (0,700) win.c:10983: Test failed: got minimized pos (0,700) win.c:10996: Test failed: got minimized pos (0,700) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== w864 (32 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,700) win.c:10932: Test failed: got minimized pos (0,700) win.c:10944: Test failed: got minimized pos (0,700) win.c:10957: Test failed: got minimized pos (0,700) win.c:10970: Test failed: got minimized pos (0,700) win.c:10983: Test failed: got minimized pos (0,700) win.c:10996: Test failed: got minimized pos (0,700) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== w1064 (32 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,700) win.c:10932: Test failed: got minimized pos (0,700) win.c:10944: Test failed: got minimized pos (0,700) win.c:10957: Test failed: got minimized pos (0,700) win.c:10970: Test failed: got minimized pos (0,700) win.c:10983: Test failed: got minimized pos (0,700) win.c:10996: Test failed: got minimized pos (0,700) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== wvistau64 (64 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,713) win.c:10932: Test failed: got minimized pos (0,713) win.c:10944: Test failed: got minimized pos (0,713) win.c:10957: Test failed: got minimized pos (0,713) win.c:10970: Test failed: got minimized pos (0,713) win.c:10983: Test failed: got minimized pos (0,713) win.c:10996: Test failed: got minimized pos (0,713) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== w2008s64 (64 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,716) win.c:10932: Test failed: got minimized pos (0,716) win.c:10944: Test failed: got minimized pos (0,716) win.c:10957: Test failed: got minimized pos (0,716) win.c:10970: Test failed: got minimized pos (0,716) win.c:10983: Test failed: got minimized pos (0,716) win.c:10996: Test failed: got minimized pos (0,716) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== w7pro64 (64 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,701) win.c:10932: Test failed: got minimized pos (0,701) win.c:10944: Test failed: got minimized pos (0,701) win.c:10957: Test failed: got minimized pos (0,701) win.c:10970: Test failed: got minimized pos (0,701) win.c:10983: Test failed: got minimized pos (0,701) win.c:10996: Test failed: got minimized pos (0,701) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
=== w864 (64 bit report) ===
user32: win.c:10920: Test failed: got minimized pos (0,700) win.c:10932: Test failed: got minimized pos (0,700) win.c:10944: Test failed: got minimized pos (0,700) win.c:10957: Test failed: got minimized pos (0,700) win.c:10970: Test failed: got minimized pos (0,700) win.c:10983: Test failed: got minimized pos (0,700) win.c:10996: Test failed: got minimized pos (0,700) win.c:11030: Test failed: got minimized pos (100,100) win.c:11052: Test failed: got minimized pos (100,100)
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/user32/tests/win.c | 131 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c index aa350aac01..2c2c81463f 100644 --- a/dlls/user32/tests/win.c +++ b/dlls/user32/tests/win.c @@ -6849,6 +6849,136 @@ static void test_ShowWindow_owned(HWND hwndMain) DestroyWindow(hwnd); }
+static void test_ShowWindow_child(HWND hwndMain) +{ + RECT rect, orig, expect; + BOOL ret; + HWND hwnd, hwnd2; + LONG style; + POINT pt = {0}; + + SetRect(&orig, 20, 20, 210, 110); + hwnd = CreateWindowA("MainWindowClass", "child", WS_CAPTION | WS_SYSMENU | + WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CHILD, + orig.left, orig.top, orig.right - orig.left, + orig.bottom - orig.top, hwndMain, 0, 0, NULL); + ok(!!hwnd, "failed to create window, error %u\n", GetLastError()); + hwnd2 = CreateWindowA("MainWindowClass", "child2", WS_CAPTION | WS_SYSMENU | + WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CHILD | WS_VISIBLE, + orig.left, orig.top, orig.right - orig.left, + orig.bottom - orig.top, hwndMain, 0, 0, NULL); + ok(!!hwnd2, "failed to create window, error %u\n", GetLastError()); + + ClientToScreen(hwndMain, &pt); + OffsetRect(&orig, pt.x, pt.y); + + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(!(style & WS_VISIBLE), "window should not be visible\n"); + ok(!(style & WS_MINIMIZE), "window should not be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&orig, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&orig), wine_dbgstr_rect(&rect)); + + ret = ShowWindow(hwnd, SW_SHOW); + ok(!ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(!(style & WS_MINIMIZE), "window should not be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&orig, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&orig), wine_dbgstr_rect(&rect)); + + ret = ShowWindow(hwnd, SW_MINIMIZE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(style & WS_MINIMIZE, "window should be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + GetClientRect(hwndMain, &expect); + SetRect(&expect, 0, expect.bottom - GetSystemMetrics(SM_CYMINIMIZED), + GetSystemMetrics(SM_CXMINIMIZED), expect.bottom); + OffsetRect(&expect, pt.x, pt.y); + todo_wine + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + /* shouldn't be able to resize minimized windows */ + ret = SetWindowPos(hwnd, 0, 0, 0, 200, 200, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER); + ok(ret, "wrong ret %d\n", ret); + GetWindowRect(hwnd, &rect); + todo_wine + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + /* multiple minimized children also stack; here the parent is too small to + * fit more than one per row */ + OffsetRect(&expect, 0, -GetSystemMetrics(SM_CYMINIMIZED)); + ret = ShowWindow(hwnd2, SW_MINIMIZE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd2, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(style & WS_MINIMIZE, "window should be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd2, &rect); + todo_wine + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + ShowWindow(hwnd, SW_RESTORE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(!(style & WS_MINIMIZE), "window should not be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&orig, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&orig), wine_dbgstr_rect(&rect)); + + ShowWindow(hwnd, SW_MAXIMIZE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(!(style & WS_MINIMIZE), "window should be minimized\n"); + ok(style & WS_MAXIMIZE, "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + GetClientRect(hwndMain, &expect); + AdjustWindowRectEx(&expect, GetWindowLongA(hwnd, GWL_STYLE) & ~WS_BORDER, + 0, GetWindowLongA(hwnd, GWL_EXSTYLE)); + OffsetRect(&expect, pt.x, pt.y); + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + /* maximized windows can be resized */ + ret = SetWindowPos(hwnd, 0, 300, 300, 200, 200, SWP_NOACTIVATE | SWP_NOZORDER); + ok(ret, "wrong ret %d\n", ret); + GetWindowRect(hwnd, &rect); + SetRect(&expect, 300, 300, 500, 500); + OffsetRect(&expect, pt.x, pt.y); + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + ShowWindow(hwnd, SW_RESTORE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(!(style & WS_MINIMIZE), "window should not be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&orig, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&orig), wine_dbgstr_rect(&rect)); + + DestroyWindow(hwnd2); + DestroyWindow(hwnd); +} + static DWORD CALLBACK enablewindow_thread(LPVOID arg) { HWND hwnd = arg; @@ -11214,6 +11344,7 @@ START_TEST(win) test_set_window_style(); test_ShowWindow(); test_ShowWindow_owned(hwndMain); + test_ShowWindow_child(hwndMain); test_EnableWindow(); test_gettext(); test_GetUpdateRect();
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47394
Your paranoid android.
=== wvistau64 (32 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,713) win.c:11062: Test failed: got minimized pos (0,713) win.c:11074: Test failed: got minimized pos (0,713) win.c:11087: Test failed: got minimized pos (0,713) win.c:11100: Test failed: got minimized pos (0,713) win.c:11113: Test failed: got minimized pos (0,713) win.c:11126: Test failed: got minimized pos (0,713) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== wvistau64_zh_CN (32 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,712) win.c:11062: Test failed: got minimized pos (0,712) win.c:11074: Test failed: got minimized pos (0,712) win.c:11087: Test failed: got minimized pos (0,712) win.c:11100: Test failed: got minimized pos (0,712) win.c:11113: Test failed: got minimized pos (0,712) win.c:11126: Test failed: got minimized pos (0,712) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== wvistau64_fr (32 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,713) win.c:11062: Test failed: got minimized pos (0,713) win.c:11074: Test failed: got minimized pos (0,713) win.c:11087: Test failed: got minimized pos (0,713) win.c:11100: Test failed: got minimized pos (0,713) win.c:11113: Test failed: got minimized pos (0,713) win.c:11126: Test failed: got minimized pos (0,713) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== wvistau64_he (32 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,713) win.c:11062: Test failed: got minimized pos (0,713) win.c:11074: Test failed: got minimized pos (0,713) win.c:11087: Test failed: got minimized pos (0,713) win.c:11100: Test failed: got minimized pos (0,713) win.c:11113: Test failed: got minimized pos (0,713) win.c:11126: Test failed: got minimized pos (0,713) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== w2008s64 (32 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,716) win.c:11062: Test failed: got minimized pos (0,716) win.c:11074: Test failed: got minimized pos (0,716) win.c:11087: Test failed: got minimized pos (0,716) win.c:11100: Test failed: got minimized pos (0,716) win.c:11113: Test failed: got minimized pos (0,716) win.c:11126: Test failed: got minimized pos (0,716) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== w7u (32 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,701) win.c:11062: Test failed: got minimized pos (0,701) win.c:11074: Test failed: got minimized pos (0,701) win.c:11087: Test failed: got minimized pos (0,701) win.c:11100: Test failed: got minimized pos (0,701) win.c:11113: Test failed: got minimized pos (0,701) win.c:11126: Test failed: got minimized pos (0,701) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== w7pro64 (32 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,701) win.c:11062: Test failed: got minimized pos (0,701) win.c:11074: Test failed: got minimized pos (0,701) win.c:11087: Test failed: got minimized pos (0,701) win.c:11100: Test failed: got minimized pos (0,701) win.c:11113: Test failed: got minimized pos (0,701) win.c:11126: Test failed: got minimized pos (0,701) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== w8 (32 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,700) win.c:11062: Test failed: got minimized pos (0,700) win.c:11074: Test failed: got minimized pos (0,700) win.c:11087: Test failed: got minimized pos (0,700) win.c:11100: Test failed: got minimized pos (0,700) win.c:11113: Test failed: got minimized pos (0,700) win.c:11126: Test failed: got minimized pos (0,700) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== w864 (32 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,700) win.c:11062: Test failed: got minimized pos (0,700) win.c:11074: Test failed: got minimized pos (0,700) win.c:11087: Test failed: got minimized pos (0,700) win.c:11100: Test failed: got minimized pos (0,700) win.c:11113: Test failed: got minimized pos (0,700) win.c:11126: Test failed: got minimized pos (0,700) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== w1064 (32 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,700) win.c:11062: Test failed: got minimized pos (0,700) win.c:11074: Test failed: got minimized pos (0,700) win.c:11087: Test failed: got minimized pos (0,700) win.c:11100: Test failed: got minimized pos (0,700) win.c:11113: Test failed: got minimized pos (0,700) win.c:11126: Test failed: got minimized pos (0,700) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== wvistau64 (64 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,713) win.c:11062: Test failed: got minimized pos (0,713) win.c:11074: Test failed: got minimized pos (0,713) win.c:11087: Test failed: got minimized pos (0,713) win.c:11100: Test failed: got minimized pos (0,713) win.c:11113: Test failed: got minimized pos (0,713) win.c:11126: Test failed: got minimized pos (0,713) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== w2008s64 (64 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,716) win.c:11062: Test failed: got minimized pos (0,716) win.c:11074: Test failed: got minimized pos (0,716) win.c:11087: Test failed: got minimized pos (0,716) win.c:11100: Test failed: got minimized pos (0,716) win.c:11113: Test failed: got minimized pos (0,716) win.c:11126: Test failed: got minimized pos (0,716) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== w7pro64 (64 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,701) win.c:11062: Test failed: got minimized pos (0,701) win.c:11074: Test failed: got minimized pos (0,701) win.c:11087: Test failed: got minimized pos (0,701) win.c:11100: Test failed: got minimized pos (0,701) win.c:11113: Test failed: got minimized pos (0,701) win.c:11126: Test failed: got minimized pos (0,701) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== w864 (64 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,700) win.c:11062: Test failed: got minimized pos (0,700) win.c:11074: Test failed: got minimized pos (0,700) win.c:11087: Test failed: got minimized pos (0,700) win.c:11100: Test failed: got minimized pos (0,700) win.c:11113: Test failed: got minimized pos (0,700) win.c:11126: Test failed: got minimized pos (0,700) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
=== w1064 (64 bit report) ===
user32: win.c:11050: Test failed: got minimized pos (0,700) win.c:11062: Test failed: got minimized pos (0,700) win.c:11074: Test failed: got minimized pos (0,700) win.c:11087: Test failed: got minimized pos (0,700) win.c:11100: Test failed: got minimized pos (0,700) win.c:11113: Test failed: got minimized pos (0,700) win.c:11126: Test failed: got minimized pos (0,700) win.c:11160: Test failed: got minimized pos (100,100) win.c:11182: Test failed: got minimized pos (100,100)
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/user32/tests/win.c | 127 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c index 2c2c81463f..581c9528c1 100644 --- a/dlls/user32/tests/win.c +++ b/dlls/user32/tests/win.c @@ -6979,6 +6979,132 @@ static void test_ShowWindow_child(HWND hwndMain) DestroyWindow(hwnd); }
+static void test_ShowWindow_mdichild(HWND hwndMain) +{ + RECT rect, orig, expect; + BOOL ret; + HWND mdiclient, hwnd, hwnd2; + LONG style; + POINT pt = {0}; + CLIENTCREATESTRUCT mdi_client_cs = {0,1}; + + SetRect(&orig, 20, 20, 210, 110); + GetClientRect(hwndMain, &rect); + mdiclient = CreateWindowA("mdiclient", "MDI client", WS_CHILD, + rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, + hwndMain, 0, 0, &mdi_client_cs); + ok(!!mdiclient, "failed to create window, error %u\n", GetLastError()); + hwnd = CreateWindowExA(WS_EX_MDICHILD, "MainWindowClass", "MDI child", + WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX, + orig.left, orig.top, orig.right - orig.left, + orig.bottom - orig.top, mdiclient, 0, 0, NULL); + ok(!!hwnd, "failed to create window, error %u\n", GetLastError()); + hwnd2 = CreateWindowExA(WS_EX_MDICHILD, "MainWindowClass", "MDI child 2", + WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX, + orig.left, orig.top, orig.right - orig.left, + orig.bottom - orig.top, mdiclient, 0, 0, NULL); + ok(!!hwnd2, "failed to create window, error %u\n", GetLastError()); + + ClientToScreen(hwndMain, &pt); + OffsetRect(&orig, pt.x, pt.y); + + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should not be visible\n"); + ok(!(style & WS_MINIMIZE), "window should not be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&orig, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&orig), wine_dbgstr_rect(&rect)); + + ret = ShowWindow(hwnd, SW_MINIMIZE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(style & WS_MINIMIZE, "window should be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + GetClientRect(hwndMain, &expect); + SetRect(&expect, 0, expect.bottom - GetSystemMetrics(SM_CYMINIMIZED), + GetSystemMetrics(SM_CXMINIMIZED), expect.bottom); + OffsetRect(&expect, pt.x, pt.y); + todo_wine + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + /* shouldn't be able to resize minimized windows */ + ret = SetWindowPos(hwnd, 0, 0, 0, 200, 200, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER); + ok(ret, "wrong ret %d\n", ret); + GetWindowRect(hwnd, &rect); + todo_wine + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + /* multiple minimized children also stack; here the parent is too small to + * fit more than one per row */ + OffsetRect(&expect, 0, -GetSystemMetrics(SM_CYMINIMIZED)); + ret = ShowWindow(hwnd2, SW_MINIMIZE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd2, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(style & WS_MINIMIZE, "window should be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd2, &rect); + todo_wine + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + ShowWindow(hwnd, SW_RESTORE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(!(style & WS_MINIMIZE), "window should not be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&orig, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&orig), wine_dbgstr_rect(&rect)); + + ShowWindow(hwnd, SW_MAXIMIZE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(!(style & WS_MINIMIZE), "window should be minimized\n"); + ok(style & WS_MAXIMIZE, "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + GetClientRect(hwndMain, &expect); + AdjustWindowRectEx(&expect, GetWindowLongA(hwnd, GWL_STYLE) & ~WS_BORDER, + 0, GetWindowLongA(hwnd, GWL_EXSTYLE)); + OffsetRect(&expect, pt.x, pt.y); + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + /* maximized windows can be resized */ + ret = SetWindowPos(hwnd, 0, 300, 300, 200, 200, SWP_NOACTIVATE | SWP_NOZORDER); + ok(ret, "wrong ret %d\n", ret); + GetWindowRect(hwnd, &rect); + SetRect(&expect, 300, 300, 500, 500); + OffsetRect(&expect, pt.x, pt.y); + ok(EqualRect(&expect, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + ShowWindow(hwnd, SW_RESTORE); + ok(ret, "wrong ret %d\n", ret); + style = GetWindowLongA(hwnd, GWL_STYLE); + ok(!(style & WS_DISABLED), "window should not be disabled\n"); + ok(style & WS_VISIBLE, "window should be visible\n"); + ok(!(style & WS_MINIMIZE), "window should not be minimized\n"); + ok(!(style & WS_MAXIMIZE), "window should not be maximized\n"); + GetWindowRect(hwnd, &rect); + ok(EqualRect(&orig, &rect), "expected %s, got %s\n", + wine_dbgstr_rect(&orig), wine_dbgstr_rect(&rect)); + + DestroyWindow(hwnd2); + DestroyWindow(hwnd); + DestroyWindow(mdiclient); +} + static DWORD CALLBACK enablewindow_thread(LPVOID arg) { HWND hwnd = arg; @@ -11345,6 +11471,7 @@ START_TEST(win) test_ShowWindow(); test_ShowWindow_owned(hwndMain); test_ShowWindow_child(hwndMain); + test_ShowWindow_mdichild(hwndMain); test_EnableWindow(); test_gettext(); test_GetUpdateRect();
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47395
Your paranoid android.
=== wvistau64 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,713) win.c:11188: Test failed: got minimized pos (0,713) win.c:11200: Test failed: got minimized pos (0,713) win.c:11213: Test failed: got minimized pos (0,713) win.c:11226: Test failed: got minimized pos (0,713) win.c:11239: Test failed: got minimized pos (0,713) win.c:11252: Test failed: got minimized pos (0,713) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== wvistau64_zh_CN (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,712) win.c:11188: Test failed: got minimized pos (0,712) win.c:11200: Test failed: got minimized pos (0,712) win.c:11213: Test failed: got minimized pos (0,712) win.c:11226: Test failed: got minimized pos (0,712) win.c:11239: Test failed: got minimized pos (0,712) win.c:11252: Test failed: got minimized pos (0,712) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== wvistau64_fr (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,713) win.c:11188: Test failed: got minimized pos (0,713) win.c:11200: Test failed: got minimized pos (0,713) win.c:11213: Test failed: got minimized pos (0,713) win.c:11226: Test failed: got minimized pos (0,713) win.c:11239: Test failed: got minimized pos (0,713) win.c:11252: Test failed: got minimized pos (0,713) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== wvistau64_he (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,713) win.c:11188: Test failed: got minimized pos (0,713) win.c:11200: Test failed: got minimized pos (0,713) win.c:11213: Test failed: got minimized pos (0,713) win.c:11226: Test failed: got minimized pos (0,713) win.c:11239: Test failed: got minimized pos (0,713) win.c:11252: Test failed: got minimized pos (0,713) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w2008s64 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,716) win.c:11188: Test failed: got minimized pos (0,716) win.c:11200: Test failed: got minimized pos (0,716) win.c:11213: Test failed: got minimized pos (0,716) win.c:11226: Test failed: got minimized pos (0,716) win.c:11239: Test failed: got minimized pos (0,716) win.c:11252: Test failed: got minimized pos (0,716) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w7u (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,701) win.c:11188: Test failed: got minimized pos (0,701) win.c:11200: Test failed: got minimized pos (0,701) win.c:11213: Test failed: got minimized pos (0,701) win.c:11226: Test failed: got minimized pos (0,701) win.c:11239: Test failed: got minimized pos (0,701) win.c:11252: Test failed: got minimized pos (0,701) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w7pro64 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,701) win.c:11188: Test failed: got minimized pos (0,701) win.c:11200: Test failed: got minimized pos (0,701) win.c:11213: Test failed: got minimized pos (0,701) win.c:11226: Test failed: got minimized pos (0,701) win.c:11239: Test failed: got minimized pos (0,701) win.c:11252: Test failed: got minimized pos (0,701) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w8 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,700) win.c:11188: Test failed: got minimized pos (0,700) win.c:11200: Test failed: got minimized pos (0,700) win.c:11213: Test failed: got minimized pos (0,700) win.c:11226: Test failed: got minimized pos (0,700) win.c:11239: Test failed: got minimized pos (0,700) win.c:11252: Test failed: got minimized pos (0,700) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w864 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,700) win.c:11188: Test failed: got minimized pos (0,700) win.c:11200: Test failed: got minimized pos (0,700) win.c:11213: Test failed: got minimized pos (0,700) win.c:11226: Test failed: got minimized pos (0,700) win.c:11239: Test failed: got minimized pos (0,700) win.c:11252: Test failed: got minimized pos (0,700) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w1064 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,700) win.c:11188: Test failed: got minimized pos (0,700) win.c:11200: Test failed: got minimized pos (0,700) win.c:11213: Test failed: got minimized pos (0,700) win.c:11226: Test failed: got minimized pos (0,700) win.c:11239: Test failed: got minimized pos (0,700) win.c:11252: Test failed: got minimized pos (0,700) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== wvistau64 (64 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,713) win.c:11188: Test failed: got minimized pos (0,713) win.c:11200: Test failed: got minimized pos (0,713) win.c:11213: Test failed: got minimized pos (0,713) win.c:11226: Test failed: got minimized pos (0,713) win.c:11239: Test failed: got minimized pos (0,713) win.c:11252: Test failed: got minimized pos (0,713) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w2008s64 (64 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,716) win.c:11188: Test failed: got minimized pos (0,716) win.c:11200: Test failed: got minimized pos (0,716) win.c:11213: Test failed: got minimized pos (0,716) win.c:11226: Test failed: got minimized pos (0,716) win.c:11239: Test failed: got minimized pos (0,716) win.c:11252: Test failed: got minimized pos (0,716) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w7pro64 (64 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,701) win.c:11188: Test failed: got minimized pos (0,701) win.c:11200: Test failed: got minimized pos (0,701) win.c:11213: Test failed: got minimized pos (0,701) win.c:11226: Test failed: got minimized pos (0,701) win.c:11239: Test failed: got minimized pos (0,701) win.c:11252: Test failed: got minimized pos (0,701) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w864 (64 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,700) win.c:11188: Test failed: got minimized pos (0,700) win.c:11200: Test failed: got minimized pos (0,700) win.c:11213: Test failed: got minimized pos (0,700) win.c:11226: Test failed: got minimized pos (0,700) win.c:11239: Test failed: got minimized pos (0,700) win.c:11252: Test failed: got minimized pos (0,700) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w1064 (64 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,700) win.c:11188: Test failed: got minimized pos (0,700) win.c:11200: Test failed: got minimized pos (0,700) win.c:11213: Test failed: got minimized pos (0,700) win.c:11226: Test failed: got minimized pos (0,700) win.c:11239: Test failed: got minimized pos (0,700) win.c:11252: Test failed: got minimized pos (0,700) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/user32/tests/win.c | 161 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c index 581c9528c1..e35b6b7c3f 100644 --- a/dlls/user32/tests/win.c +++ b/dlls/user32/tests/win.c @@ -11337,6 +11337,166 @@ todo_wine DestroyWindow(hwnd); }
+static void test_arrange_iconic_windows(void) +{ + MINIMIZEDMETRICS mm = {sizeof(mm)}, oldmm = {sizeof(oldmm)}; + RECT orig = {100, 200, 300, 400}, rect, expect, parent_rect; + POINT pt = {0}; + HWND parent, hwnds[10]; + UINT ret; + int i, row, col; + + parent = CreateWindowA("MainWindowClass", "parent", WS_OVERLAPPEDWINDOW, + 100, 200, 500, 300, NULL, 0, 0, NULL); + ok(!!parent, "failed to create window, error %u\n", GetLastError()); + + GetClientRect(parent, &parent_rect); + ClientToScreen(parent, &pt); + SystemParametersInfoA(SPI_GETMINIMIZEDMETRICS, sizeof(oldmm), &oldmm, 0); + + mm.iWidth = 100; + mm.iHorzGap = 40; + mm.iVertGap = 3; + mm.iArrange = ARW_TOPLEFT | ARW_RIGHT; + ret = SystemParametersInfoA(SPI_SETMINIMIZEDMETRICS, sizeof(mm), &mm, 0); + ok(ret, "failed to set minimized metrics, error %u\n", GetLastError()); + + SetLastError(0xdeadbeef); + ret = ArrangeIconicWindows(parent); +todo_wine + ok(!ret, "wrong ret %u\n", ret); + ok(GetLastError() == 0xdeadbeef, "wrong error %u\n", GetLastError()); + + for (i = 0; i < ARRAY_SIZE(hwnds); ++i) + { + hwnds[i] = CreateWindowA("MainWindowClass", "child", WS_CHILD | + WS_OVERLAPPEDWINDOW, orig.left, orig.top, orig.right - orig.left, + orig.bottom - orig.top, parent, 0, 0, NULL); + ok(!!hwnds[i], "failed to create window %u, error %u\n", i, GetLastError()); + } + + SetLastError(0xdeadbeef); + ret = ArrangeIconicWindows(parent); +todo_wine + ok(!ret, "wrong ret %u\n", ret); + ok(GetLastError() == 0xdeadbeef, "wrong error %u\n", GetLastError()); + + for (i = 0; i < ARRAY_SIZE(hwnds); ++i) + { + GetWindowRect(hwnds[i], &rect); + expect = orig; + OffsetRect(&expect, pt.x, pt.y); + ok(EqualRect(&rect, &expect), "hwnd %u: expected rect %s, got %s\n", i, + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + } + + ShowWindow(hwnds[0], SW_MINIMIZE); + + for (i = 0; i < ARRAY_SIZE(hwnds); ++i) + { + ret = SetWindowPos(hwnds[i], 0, orig.left, orig.top, 0, 0, + SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); + ok(ret, "hwnd %u: failed to move window, error %u\n", i, GetLastError()); + } + + ret = ArrangeIconicWindows(parent); +todo_wine + ok(ret == 1, "wrong ret %u\n", ret); + + GetWindowRect(hwnds[0], &rect); + SetRect(&expect, 0, 0, GetSystemMetrics(SM_CXMINIMIZED), GetSystemMetrics(SM_CYMINIMIZED)); + OffsetRect(&expect, mm.iHorzGap, mm.iVertGap); + OffsetRect(&expect, pt.x, pt.y); +todo_wine + ok(EqualRect(&rect, &expect), "expected rect %s, got %s\n", + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + for (i = 1; i < ARRAY_SIZE(hwnds); ++i) + { + GetWindowRect(hwnds[i], &rect); + expect = orig; + OffsetRect(&expect, pt.x, pt.y); + ok(EqualRect(&rect, &expect), "hwnd %u: expected rect %s, got %s\n", i, + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + } + + for (i = 0; i < ARRAY_SIZE(hwnds); ++i) + { + ShowWindow(hwnds[i], SW_MINIMIZE); + ret = SetWindowPos(hwnds[i], 0, orig.left, orig.top, 0, 0, + SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); + ok(ret, "hwnd %u: failed to move window, error %u\n", i, GetLastError()); + } + + ret = ArrangeIconicWindows(parent); +todo_wine + ok(ret == 10, "wrong ret %u\n", ret); + + col = mm.iHorzGap; + row = mm.iVertGap; + for (i = 0; i < ARRAY_SIZE(hwnds); ++i) + { + if (col + GetSystemMetrics(SM_CXMINIMIZED) > parent_rect.right - parent_rect.left) + { + col = mm.iHorzGap; + row += GetSystemMetrics(SM_CYMINIMIZED) + mm.iVertGap; + } + + GetWindowRect(hwnds[i], &rect); + SetRect(&expect, col, row, col + GetSystemMetrics(SM_CXMINIMIZED), + row + GetSystemMetrics(SM_CYMINIMIZED)); + OffsetRect(&expect, pt.x, pt.y); +todo_wine + ok(EqualRect(&rect, &expect), "hwnd %u: expected rect %s, got %s\n", i, + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + col += GetSystemMetrics(SM_CXMINIMIZED) + mm.iHorzGap; + } + + mm.iArrange = ARW_BOTTOMRIGHT | ARW_UP; + mm.iVertGap = 10; + ret = SystemParametersInfoA(SPI_SETMINIMIZEDMETRICS, sizeof(mm), &mm, 0); + ok(ret, "failed to set minimized metrics, error %u\n", GetLastError()); + + for (i = 0; i < ARRAY_SIZE(hwnds); ++i) + { + ret = SetWindowPos(hwnds[i], 0, orig.left, orig.top, 0, 0, + SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); + ok(ret, "hwnd %u: failed to move window, error %u\n", i, GetLastError()); + } + + ret = ArrangeIconicWindows(parent); +todo_wine + ok(ret == 10, "wrong ret %u\n", ret); + + col = parent_rect.right - mm.iHorzGap; + row = parent_rect.bottom - mm.iVertGap; + for (i = 0; i < ARRAY_SIZE(hwnds); ++i) + { + if (row - GetSystemMetrics(SM_CYMINIMIZED) < parent_rect.top) + { + row = parent_rect.bottom - mm.iVertGap; + col -= GetSystemMetrics(SM_CXMINIMIZED) + mm.iHorzGap; + } + + GetWindowRect(hwnds[i], &rect); + SetRect(&expect, col - GetSystemMetrics(SM_CXMINIMIZED), + row - GetSystemMetrics(SM_CYMINIMIZED), col, row); + OffsetRect(&expect, pt.x, pt.y); +todo_wine + ok(EqualRect(&rect, &expect), "hwnd %u: expected rect %s, got %s\n", i, + wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + + row -= GetSystemMetrics(SM_CYMINIMIZED) + mm.iVertGap; + } + + for (i = 0; i < ARRAY_SIZE(hwnds); ++i) + DestroyWindow(hwnds[i]); + + ret = SystemParametersInfoA(SPI_SETMINIMIZEDMETRICS, sizeof(oldmm), &oldmm, 0); + ok(ret, "failed to restore minimized metrics, error %u\n", GetLastError()); +} + START_TEST(win) { char **argv; @@ -11498,6 +11658,7 @@ START_TEST(win) test_destroy_quit(); test_IsWindowEnabled(); test_window_placement(); + test_arrange_iconic_windows();
/* add the tests above this line */ if (hhook) UnhookWindowsHookEx(hhook);
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47396
Your paranoid android.
=== wxppro (32 bit report) ===
user32: win.c:10670: Test failed: 00060150: expected prev 00000000, got 0003011C win.c:10671: Test failed: 003B013C: expected prev 00000000, got 0003011C win.c:10685: Test failed: 003B013C: expected prev 00000000, got 0003011C win.c:10695: Test failed: 003B013C: expected prev 00000000, got 0003011C win.c:10710: Test failed: 003B013C: expected prev 00000000, got 0003011C win.c:10718: Test failed: 00060150: expected prev 00000000, got 0003011C win.c:10734: Test failed: 003B013C: expected prev 00000000, got 0003011C win.c:10742: Test failed: 00060150: expected prev 00000000, got 0003011C win.c:10743: Test failed: 003B013C: expected prev 00000000, got 0003011C win.c:10754: Test failed: 00060150: expected prev 00000000, got 0003011C win.c:10765: Test failed: 00060150: expected prev 00000000, got 0003011C win.c:10777: Test failed: 003B013C: expected prev 00000000, got 0003011C win.c:10788: Test failed: 00060150: expected prev 00000000, got 0003011C win.c:10800: Test failed: 003B013C: expected prev 00000000, got 0003011C win.c:10810: Test failed: 00060150: expected prev 00000000, got 0003011C win.c:10811: Test failed: 003B013C: expected prev 00000000, got 0003011C win.c:10819: Test failed: 00060150: expected prev 00000000, got 0003011C win.c:10832: Test failed: 00060150: expected prev 00000000, got 0003011C win.c:10843: Test failed: 00060150: expected prev 00910136, got 0003011C win.c:10856: Test failed: 00060150: expected prev 00000000, got 0003011C win.c:10867: Test failed: 00060150: expected prev 00000000, got 0003011C
=== w2003std (32 bit report) ===
user32: win.c:10670: Test failed: 00080138: expected prev 00000000, got 000B00FA win.c:10671: Test failed: 0005013E: expected prev 00000000, got 000B00FA win.c:10685: Test failed: 0005013E: expected prev 00000000, got 000B00FA win.c:10695: Test failed: 0005013E: expected prev 00000000, got 000B00FA win.c:10710: Test failed: 0005013E: expected prev 00000000, got 000B00FA win.c:10718: Test failed: 00080138: expected prev 00000000, got 000B00FA win.c:10734: Test failed: 0005013E: expected prev 00000000, got 000B00FA win.c:10742: Test failed: 00080138: expected prev 00000000, got 000B00FA win.c:10743: Test failed: 0005013E: expected prev 00000000, got 000B00FA win.c:10754: Test failed: 00080138: expected prev 00000000, got 000B00FA win.c:10765: Test failed: 00080138: expected prev 00000000, got 000B00FA win.c:10777: Test failed: 0005013E: expected prev 00000000, got 000B00FA win.c:10788: Test failed: 00080138: expected prev 00000000, got 000B00FA win.c:10800: Test failed: 0005013E: expected prev 00000000, got 000B00FA win.c:10810: Test failed: 00080138: expected prev 00000000, got 000B00FA win.c:10811: Test failed: 0005013E: expected prev 00000000, got 000B00FA win.c:10819: Test failed: 00080138: expected prev 00000000, got 000B00FA win.c:10832: Test failed: 00080138: expected prev 00000000, got 000B00FA win.c:10843: Test failed: 00080138: expected prev 00060136, got 000B00FA win.c:10856: Test failed: 00080138: expected prev 00000000, got 000B00FA win.c:10867: Test failed: 00080138: expected prev 00000000, got 000B00FA
=== wvistau64 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,713) win.c:11188: Test failed: got minimized pos (0,713) win.c:11200: Test failed: got minimized pos (0,713) win.c:11213: Test failed: got minimized pos (0,713) win.c:11226: Test failed: got minimized pos (0,713) win.c:11239: Test failed: got minimized pos (0,713) win.c:11252: Test failed: got minimized pos (0,713) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== wvistau64_zh_CN (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,712) win.c:11188: Test failed: got minimized pos (0,712) win.c:11200: Test failed: got minimized pos (0,712) win.c:11213: Test failed: got minimized pos (0,712) win.c:11226: Test failed: got minimized pos (0,712) win.c:11239: Test failed: got minimized pos (0,712) win.c:11252: Test failed: got minimized pos (0,712) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== wvistau64_fr (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,713) win.c:11188: Test failed: got minimized pos (0,713) win.c:11200: Test failed: got minimized pos (0,713) win.c:11213: Test failed: got minimized pos (0,713) win.c:11226: Test failed: got minimized pos (0,713) win.c:11239: Test failed: got minimized pos (0,713) win.c:11252: Test failed: got minimized pos (0,713) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== wvistau64_he (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,713) win.c:11188: Test failed: got minimized pos (0,713) win.c:11200: Test failed: got minimized pos (0,713) win.c:11213: Test failed: got minimized pos (0,713) win.c:11226: Test failed: got minimized pos (0,713) win.c:11239: Test failed: got minimized pos (0,713) win.c:11252: Test failed: got minimized pos (0,713) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w2008s64 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,716) win.c:11188: Test failed: got minimized pos (0,716) win.c:11200: Test failed: got minimized pos (0,716) win.c:11213: Test failed: got minimized pos (0,716) win.c:11226: Test failed: got minimized pos (0,716) win.c:11239: Test failed: got minimized pos (0,716) win.c:11252: Test failed: got minimized pos (0,716) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w7u (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,701) win.c:11188: Test failed: got minimized pos (0,701) win.c:11200: Test failed: got minimized pos (0,701) win.c:11213: Test failed: got minimized pos (0,701) win.c:11226: Test failed: got minimized pos (0,701) win.c:11239: Test failed: got minimized pos (0,701) win.c:11252: Test failed: got minimized pos (0,701) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100) win.c:10670: Test failed: 000601BA: expected prev 00000000, got 000301AC win.c:10671: Test failed: 000400DA: expected prev 00000000, got 000301AC win.c:10685: Test failed: 000400DA: expected prev 00000000, got 000301AC win.c:10695: Test failed: 000400DA: expected prev 00000000, got 000301AC win.c:10710: Test failed: 000400DA: expected prev 00000000, got 000301AC win.c:10718: Test failed: 000601BA: expected prev 00000000, got 000301AC win.c:10734: Test failed: 000400DA: expected prev 00000000, got 000301AC win.c:10742: Test failed: 000601BA: expected prev 00000000, got 000301AC win.c:10743: Test failed: 000400DA: expected prev 00000000, got 000301AC win.c:10754: Test failed: 000601BA: expected prev 00000000, got 000301AC win.c:10765: Test failed: 000601BA: expected prev 00000000, got 000301AC win.c:10777: Test failed: 000400DA: expected prev 00000000, got 000301AC win.c:10788: Test failed: 000601BA: expected prev 00000000, got 000301AC win.c:10800: Test failed: 000400DA: expected prev 00000000, got 000301AC win.c:10810: Test failed: 000601BA: expected prev 00000000, got 000301AC win.c:10811: Test failed: 000400DA: expected prev 00000000, got 000301AC win.c:10819: Test failed: 000601BA: expected prev 00000000, got 000301AC win.c:10832: Test failed: 000601BA: expected prev 00000000, got 000301AC win.c:10843: Test failed: 000601BA: expected prev 000400D0, got 000301AC win.c:10856: Test failed: 000601BA: expected prev 00000000, got 000301AC win.c:10867: Test failed: 000601BA: expected prev 00000000, got 000301AC
=== w7pro64 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,701) win.c:11188: Test failed: got minimized pos (0,701) win.c:11200: Test failed: got minimized pos (0,701) win.c:11213: Test failed: got minimized pos (0,701) win.c:11226: Test failed: got minimized pos (0,701) win.c:11239: Test failed: got minimized pos (0,701) win.c:11252: Test failed: got minimized pos (0,701) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100) win.c:10670: Test failed: 000601CA: expected prev 00000000, got 000201D0 win.c:10671: Test failed: 000400FA: expected prev 00000000, got 000201D0 win.c:10685: Test failed: 000400FA: expected prev 00000000, got 000201D0 win.c:10695: Test failed: 000400FA: expected prev 00000000, got 000201D0 win.c:10710: Test failed: 000400FA: expected prev 00000000, got 000201D0 win.c:10718: Test failed: 000601CA: expected prev 00000000, got 000201D0 win.c:10734: Test failed: 000400FA: expected prev 00000000, got 000201D0 win.c:10742: Test failed: 000601CA: expected prev 00000000, got 000201D0 win.c:10743: Test failed: 000400FA: expected prev 00000000, got 000201D0 win.c:10754: Test failed: 000601CA: expected prev 00000000, got 000201D0 win.c:10765: Test failed: 000601CA: expected prev 00000000, got 000201D0 win.c:10777: Test failed: 000400FA: expected prev 00000000, got 000201D0 win.c:10788: Test failed: 000601CA: expected prev 00000000, got 000201D0 win.c:10800: Test failed: 000400FA: expected prev 00000000, got 000201D0 win.c:10810: Test failed: 000601CA: expected prev 00000000, got 000201D0 win.c:10811: Test failed: 000400FA: expected prev 00000000, got 000201D0 win.c:10819: Test failed: 000601CA: expected prev 00000000, got 000201D0 win.c:10832: Test failed: 000601CA: expected prev 00000000, got 000201D0 win.c:10843: Test failed: 000601CA: expected prev 000400F0, got 000201D0 win.c:10856: Test failed: 000601CA: expected prev 00000000, got 000201D0 win.c:10867: Test failed: 000601CA: expected prev 00000000, got 000201D0
=== w8 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,700) win.c:11188: Test failed: got minimized pos (0,700) win.c:11200: Test failed: got minimized pos (0,700) win.c:11213: Test failed: got minimized pos (0,700) win.c:11226: Test failed: got minimized pos (0,700) win.c:11239: Test failed: got minimized pos (0,700) win.c:11252: Test failed: got minimized pos (0,700) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100) win.c:10670: Test failed: 00090122: expected prev 00000000, got 000500CC win.c:10671: Test failed: 0004009C: expected prev 00000000, got 000500CC win.c:10685: Test failed: 0004009C: expected prev 00000000, got 000500CC win.c:10695: Test failed: 0004009C: expected prev 00000000, got 000500CC win.c:10710: Test failed: 0004009C: expected prev 00000000, got 000500CC win.c:10718: Test failed: 00090122: expected prev 00000000, got 000500CC win.c:10734: Test failed: 0004009C: expected prev 00000000, got 000500CC win.c:10742: Test failed: 00090122: expected prev 00000000, got 000500CC win.c:10743: Test failed: 0004009C: expected prev 00000000, got 000500CC win.c:10754: Test failed: 00090122: expected prev 00000000, got 000500CC win.c:10765: Test failed: 00090122: expected prev 00000000, got 000500CC win.c:10777: Test failed: 0004009C: expected prev 00000000, got 000500CC win.c:10788: Test failed: 00090122: expected prev 00000000, got 000500CC win.c:10800: Test failed: 0004009C: expected prev 00000000, got 000500CC win.c:10810: Test failed: 00090122: expected prev 00000000, got 000500CC win.c:10811: Test failed: 0004009C: expected prev 00000000, got 000500CC win.c:10819: Test failed: 00090122: expected prev 00000000, got 000500CC win.c:10832: Test failed: 00090122: expected prev 00000000, got 000500CC win.c:10843: Test failed: 00090122: expected prev 00040098, got 000500CC win.c:10856: Test failed: 00090122: expected prev 00000000, got 000500CC win.c:10867: Test failed: 00090122: expected prev 00000000, got 000500CC
=== w8adm (32 bit report) ===
user32: win.c:10670: Test failed: 000501F2: expected prev 00000000, got 000301F4 win.c:10671: Test failed: 003800CC: expected prev 00000000, got 000301F4 win.c:10685: Test failed: 003800CC: expected prev 00000000, got 000301F4 win.c:10695: Test failed: 003800CC: expected prev 00000000, got 000301F4 win.c:10710: Test failed: 003800CC: expected prev 00000000, got 000301F4 win.c:10718: Test failed: 000501F2: expected prev 00000000, got 000301F4 win.c:10734: Test failed: 003800CC: expected prev 00000000, got 000301F4 win.c:10742: Test failed: 000501F2: expected prev 00000000, got 000301F4 win.c:10743: Test failed: 003800CC: expected prev 00000000, got 000301F4 win.c:10754: Test failed: 000501F2: expected prev 00000000, got 000301F4 win.c:10765: Test failed: 000501F2: expected prev 00000000, got 000301F4 win.c:10777: Test failed: 003800CC: expected prev 00000000, got 000301F4 win.c:10788: Test failed: 000501F2: expected prev 00000000, got 000301F4 win.c:10800: Test failed: 003800CC: expected prev 00000000, got 000301F4 win.c:10810: Test failed: 000501F2: expected prev 00000000, got 000301F4 win.c:10811: Test failed: 003800CC: expected prev 00000000, got 000301F4 win.c:10819: Test failed: 000501F2: expected prev 00000000, got 000301F4 win.c:10832: Test failed: 000501F2: expected prev 00000000, got 000301F4 win.c:10843: Test failed: 000501F2: expected prev 00060204, got 000301F4 win.c:10856: Test failed: 000501F2: expected prev 00000000, got 000301F4 win.c:10867: Test failed: 000501F2: expected prev 00000000, got 000301F4
=== w864 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,700) win.c:11188: Test failed: got minimized pos (0,700) win.c:11200: Test failed: got minimized pos (0,700) win.c:11213: Test failed: got minimized pos (0,700) win.c:11226: Test failed: got minimized pos (0,700) win.c:11239: Test failed: got minimized pos (0,700) win.c:11252: Test failed: got minimized pos (0,700) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100) win.c:10670: Test failed: 000601D0: expected prev 00000000, got 000301BE win.c:10671: Test failed: 00040172: expected prev 00000000, got 000301BE win.c:10685: Test failed: 00040172: expected prev 00000000, got 000301BE win.c:10695: Test failed: 00040172: expected prev 00000000, got 000301BE win.c:10710: Test failed: 00040172: expected prev 00000000, got 000301BE win.c:10718: Test failed: 000601D0: expected prev 00000000, got 000301BE win.c:10734: Test failed: 00040172: expected prev 00000000, got 000301BE win.c:10742: Test failed: 000601D0: expected prev 00000000, got 000301BE win.c:10743: Test failed: 00040172: expected prev 00000000, got 000301BE win.c:10754: Test failed: 000601D0: expected prev 00000000, got 000301BE win.c:10765: Test failed: 000601D0: expected prev 00000000, got 000301BE win.c:10777: Test failed: 00040172: expected prev 00000000, got 000301BE win.c:10788: Test failed: 000601D0: expected prev 00000000, got 000301BE win.c:10800: Test failed: 00040172: expected prev 00000000, got 000301BE win.c:10810: Test failed: 000601D0: expected prev 00000000, got 000301BE win.c:10811: Test failed: 00040172: expected prev 00000000, got 000301BE win.c:10819: Test failed: 000601D0: expected prev 00000000, got 000301BE win.c:10832: Test failed: 000601D0: expected prev 00000000, got 000301BE win.c:10843: Test failed: 000601D0: expected prev 00040198, got 000301BE win.c:10856: Test failed: 000601D0: expected prev 00000000, got 000301BE win.c:10867: Test failed: 000601D0: expected prev 00000000, got 000301BE
=== w1064 (32 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,700) win.c:11188: Test failed: got minimized pos (0,700) win.c:11200: Test failed: got minimized pos (0,700) win.c:11213: Test failed: got minimized pos (0,700) win.c:11226: Test failed: got minimized pos (0,700) win.c:11239: Test failed: got minimized pos (0,700) win.c:11252: Test failed: got minimized pos (0,700) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100) win.c:10670: Test failed: 0006013E: expected prev 00000000, got 00020152 win.c:10671: Test failed: 000401C0: expected prev 00000000, got 00020152 win.c:10685: Test failed: 000401C0: expected prev 00000000, got 00020152 win.c:10695: Test failed: 000401C0: expected prev 00000000, got 00020152 win.c:10710: Test failed: 000401C0: expected prev 00000000, got 00020152 win.c:10718: Test failed: 0006013E: expected prev 00000000, got 00020152 win.c:10734: Test failed: 000401C0: expected prev 00000000, got 00020152 win.c:10742: Test failed: 0006013E: expected prev 00000000, got 00020152 win.c:10743: Test failed: 000401C0: expected prev 00000000, got 00020152 win.c:10754: Test failed: 0006013E: expected prev 00000000, got 00020152 win.c:10765: Test failed: 0006013E: expected prev 00000000, got 00020152 win.c:10777: Test failed: 000401C0: expected prev 00000000, got 00020152 win.c:10788: Test failed: 0006013E: expected prev 00000000, got 00020152 win.c:10800: Test failed: 000401C0: expected prev 00000000, got 00020152 win.c:10810: Test failed: 0006013E: expected prev 00000000, got 00020152 win.c:10811: Test failed: 000401C0: expected prev 00000000, got 00020152 win.c:10819: Test failed: 0006013E: expected prev 00000000, got 00020152 win.c:10832: Test failed: 0006013E: expected prev 00000000, got 00020152 win.c:10843: Test failed: 0006013E: expected prev 000401AC, got 00020152 win.c:10856: Test failed: 0006013E: expected prev 00000000, got 00020152 win.c:10867: Test failed: 0006013E: expected prev 00000000, got 00020152
=== wvistau64 (64 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,713) win.c:11188: Test failed: got minimized pos (0,713) win.c:11200: Test failed: got minimized pos (0,713) win.c:11213: Test failed: got minimized pos (0,713) win.c:11226: Test failed: got minimized pos (0,713) win.c:11239: Test failed: got minimized pos (0,713) win.c:11252: Test failed: got minimized pos (0,713) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w2008s64 (64 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,716) win.c:11188: Test failed: got minimized pos (0,716) win.c:11200: Test failed: got minimized pos (0,716) win.c:11213: Test failed: got minimized pos (0,716) win.c:11226: Test failed: got minimized pos (0,716) win.c:11239: Test failed: got minimized pos (0,716) win.c:11252: Test failed: got minimized pos (0,716) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100)
=== w7pro64 (64 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,701) win.c:11188: Test failed: got minimized pos (0,701) win.c:11200: Test failed: got minimized pos (0,701) win.c:11213: Test failed: got minimized pos (0,701) win.c:11226: Test failed: got minimized pos (0,701) win.c:11239: Test failed: got minimized pos (0,701) win.c:11252: Test failed: got minimized pos (0,701) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100) win.c:10670: Test failed: 00000000000601CA: expected prev 0000000000000000, got 00000000000201D0 win.c:10671: Test failed: 0000000000050128: expected prev 0000000000000000, got 00000000000201D0 win.c:10685: Test failed: 0000000000050128: expected prev 0000000000000000, got 00000000000201D0 win.c:10695: Test failed: 0000000000050128: expected prev 0000000000000000, got 00000000000201D0 win.c:10710: Test failed: 0000000000050128: expected prev 0000000000000000, got 00000000000201D0 win.c:10718: Test failed: 00000000000601CA: expected prev 0000000000000000, got 00000000000201D0 win.c:10734: Test failed: 0000000000050128: expected prev 0000000000000000, got 00000000000201D0 win.c:10742: Test failed: 00000000000601CA: expected prev 0000000000000000, got 00000000000201D0 win.c:10743: Test failed: 0000000000050128: expected prev 0000000000000000, got 00000000000201D0 win.c:10754: Test failed: 00000000000601CA: expected prev 0000000000000000, got 00000000000201D0 win.c:10765: Test failed: 00000000000601CA: expected prev 0000000000000000, got 00000000000201D0 win.c:10777: Test failed: 0000000000050128: expected prev 0000000000000000, got 00000000000201D0 win.c:10788: Test failed: 00000000000601CA: expected prev 0000000000000000, got 00000000000201D0 win.c:10800: Test failed: 0000000000050128: expected prev 0000000000000000, got 00000000000201D0 win.c:10810: Test failed: 00000000000601CA: expected prev 0000000000000000, got 00000000000201D0 win.c:10811: Test failed: 0000000000050128: expected prev 0000000000000000, got 00000000000201D0 win.c:10819: Test failed: 00000000000601CA: expected prev 0000000000000000, got 00000000000201D0 win.c:10832: Test failed: 00000000000601CA: expected prev 0000000000000000, got 00000000000201D0 win.c:10843: Test failed: 00000000000601CA: expected prev 000000000004011C, got 00000000000201D0 win.c:10856: Test failed: 00000000000601CA: expected prev 0000000000000000, got 00000000000201D0 win.c:10867: Test failed: 00000000000601CA: expected prev 0000000000000000, got 00000000000201D0
=== w864 (64 bit report) ===
user32: win.c:11176: Test failed: got minimized pos (0,700) win.c:11188: Test failed: got minimized pos (0,700) win.c:11200: Test failed: got minimized pos (0,700) win.c:11213: Test failed: got minimized pos (0,700) win.c:11226: Test failed: got minimized pos (0,700) win.c:11239: Test failed: got minimized pos (0,700) win.c:11252: Test failed: got minimized pos (0,700) win.c:11286: Test failed: got minimized pos (100,100) win.c:11308: Test failed: got minimized pos (100,100) win.c:10670: Test failed: 00000000000601CC: expected prev 0000000000000000, got 00000000000301C4 win.c:10671: Test failed: 0000000000040172: expected prev 0000000000000000, got 00000000000301C4 win.c:10685: Test failed: 0000000000040172: expected prev 0000000000000000, got 00000000000301C4 win.c:10695: Test failed: 0000000000040172: expected prev 0000000000000000, got 00000000000301C4 win.c:10710: Test failed: 0000000000040172: expected prev 0000000000000000, got 00000000000301C4 win.c:10718: Test failed: 00000000000601CC: expected prev 0000000000000000, got 00000000000301C4 win.c:10734: Test failed: 0000000000040172: expected prev 0000000000000000, got 00000000000301C4 win.c:10742: Test failed: 00000000000601CC: expected prev 0000000000000000, got 00000000000301C4 win.c:10743: Test failed: 0000000000040172: expected prev 0000000000000000, got 00000000000301C4 win.c:10754: Test failed: 00000000000601CC: expected prev 0000000000000000, got 00000000000301C4 win.c:10765: Test failed: 00000000000601CC: expected prev 0000000000000000, got 00000000000301C4 win.c:10777: Test failed: 0000000000040172: expected prev 0000000000000000, got 00000000000301C4 win.c:10788: Test failed: 00000000000601CC: expected prev 0000000000000000, got 00000000000301C4 win.c:10800: Test failed: 0000000000040172: expected prev 0000000000000000, got 00000000000301C4 win.c:10810: Test failed: 00000000000601CC: expected prev 0000000000000000, got 00000000000301C4 win.c:10811: Test failed: 0000000000040172: expected prev 0000000000000000, got 00000000000301C4 win.c:10819: Test failed: 00000000000601CC: expected prev 0000000000000000, got 00000000000301C4 win.c:10832: Test failed: 00000000000601CC: expected prev 0000000000000000, got 00000000000301C4 win.c:10843: Test failed: 00000000000601CC: expected prev 0000000000040198, got 00000000000301C4 win.c:10856: Test failed: 00000000000601CC: expected prev 0000000000000000, got 00000000000301C4 win.c:10867: Test failed: 00000000000601CC: expected prev 0000000000000000, got 00000000000301C4
=== w1064 (64 bit report) ===
user32: win.c:10670: Test failed: 000000000006013E: expected prev 0000000000000000, got 0000000000020152 win.c:10671: Test failed: 0000000000320242: expected prev 0000000000000000, got 0000000000020152 win.c:10685: Test failed: 0000000000320242: expected prev 0000000000000000, got 0000000000020152 win.c:10695: Test failed: 0000000000320242: expected prev 0000000000000000, got 0000000000020152 win.c:10710: Test failed: 0000000000320242: expected prev 0000000000000000, got 0000000000020152 win.c:10718: Test failed: 000000000006013E: expected prev 0000000000000000, got 0000000000020152 win.c:10734: Test failed: 0000000000320242: expected prev 0000000000000000, got 0000000000020152 win.c:10742: Test failed: 000000000006013E: expected prev 0000000000000000, got 0000000000020152 win.c:10743: Test failed: 0000000000320242: expected prev 0000000000000000, got 0000000000020152 win.c:10754: Test failed: 000000000006013E: expected prev 0000000000000000, got 0000000000020152 win.c:10765: Test failed: 000000000006013E: expected prev 0000000000000000, got 0000000000020152 win.c:10777: Test failed: 0000000000320242: expected prev 0000000000000000, got 0000000000020152 win.c:10788: Test failed: 000000000006013E: expected prev 0000000000000000, got 0000000000020152 win.c:10800: Test failed: 0000000000320242: expected prev 0000000000000000, got 0000000000020152 win.c:10810: Test failed: 000000000006013E: expected prev 0000000000000000, got 0000000000020152 win.c:10811: Test failed: 0000000000320242: expected prev 0000000000000000, got 0000000000020152 win.c:10819: Test failed: 000000000006013E: expected prev 0000000000000000, got 0000000000020152 win.c:10832: Test failed: 000000000006013E: expected prev 0000000000000000, got 0000000000020152 win.c:10843: Test failed: 000000000006013E: expected prev 00000000000401AC, got 0000000000020152 win.c:10856: Test failed: 000000000006013E: expected prev 0000000000000000, got 0000000000020152 win.c:10867: Test failed: 000000000006013E: expected prev 0000000000000000, got 0000000000020152
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47392
Your paranoid android.
=== wvistau64 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,713) win.c:10808: Test failed: got minimized pos (0,713) win.c:10820: Test failed: got minimized pos (0,713) win.c:10833: Test failed: got minimized pos (0,713) win.c:10846: Test failed: got minimized pos (0,713) win.c:10859: Test failed: got minimized pos (0,713) win.c:10872: Test failed: got minimized pos (0,713) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== wvistau64_zh_CN (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,712) win.c:10808: Test failed: got minimized pos (0,712) win.c:10820: Test failed: got minimized pos (0,712) win.c:10833: Test failed: got minimized pos (0,712) win.c:10846: Test failed: got minimized pos (0,712) win.c:10859: Test failed: got minimized pos (0,712) win.c:10872: Test failed: got minimized pos (0,712) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== wvistau64_fr (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,713) win.c:10808: Test failed: got minimized pos (0,713) win.c:10820: Test failed: got minimized pos (0,713) win.c:10833: Test failed: got minimized pos (0,713) win.c:10846: Test failed: got minimized pos (0,713) win.c:10859: Test failed: got minimized pos (0,713) win.c:10872: Test failed: got minimized pos (0,713) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== wvistau64_he (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,713) win.c:10808: Test failed: got minimized pos (0,713) win.c:10820: Test failed: got minimized pos (0,713) win.c:10833: Test failed: got minimized pos (0,713) win.c:10846: Test failed: got minimized pos (0,713) win.c:10859: Test failed: got minimized pos (0,713) win.c:10872: Test failed: got minimized pos (0,713) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== w2008s64 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,716) win.c:10808: Test failed: got minimized pos (0,716) win.c:10820: Test failed: got minimized pos (0,716) win.c:10833: Test failed: got minimized pos (0,716) win.c:10846: Test failed: got minimized pos (0,716) win.c:10859: Test failed: got minimized pos (0,716) win.c:10872: Test failed: got minimized pos (0,716) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== w7u (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,701) win.c:10808: Test failed: got minimized pos (0,701) win.c:10820: Test failed: got minimized pos (0,701) win.c:10833: Test failed: got minimized pos (0,701) win.c:10846: Test failed: got minimized pos (0,701) win.c:10859: Test failed: got minimized pos (0,701) win.c:10872: Test failed: got minimized pos (0,701) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== w7pro64 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,701) win.c:10808: Test failed: got minimized pos (0,701) win.c:10820: Test failed: got minimized pos (0,701) win.c:10833: Test failed: got minimized pos (0,701) win.c:10846: Test failed: got minimized pos (0,701) win.c:10859: Test failed: got minimized pos (0,701) win.c:10872: Test failed: got minimized pos (0,701) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== w8 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,700) win.c:10808: Test failed: got minimized pos (0,700) win.c:10820: Test failed: got minimized pos (0,700) win.c:10833: Test failed: got minimized pos (0,700) win.c:10846: Test failed: got minimized pos (0,700) win.c:10859: Test failed: got minimized pos (0,700) win.c:10872: Test failed: got minimized pos (0,700) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== w864 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,700) win.c:10808: Test failed: got minimized pos (0,700) win.c:10820: Test failed: got minimized pos (0,700) win.c:10833: Test failed: got minimized pos (0,700) win.c:10846: Test failed: got minimized pos (0,700) win.c:10859: Test failed: got minimized pos (0,700) win.c:10872: Test failed: got minimized pos (0,700) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== w1064 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,700) win.c:10808: Test failed: got minimized pos (0,700) win.c:10820: Test failed: got minimized pos (0,700) win.c:10833: Test failed: got minimized pos (0,700) win.c:10846: Test failed: got minimized pos (0,700) win.c:10859: Test failed: got minimized pos (0,700) win.c:10872: Test failed: got minimized pos (0,700) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== wvistau64 (64 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,713) win.c:10808: Test failed: got minimized pos (0,713) win.c:10820: Test failed: got minimized pos (0,713) win.c:10833: Test failed: got minimized pos (0,713) win.c:10846: Test failed: got minimized pos (0,713) win.c:10859: Test failed: got minimized pos (0,713) win.c:10872: Test failed: got minimized pos (0,713) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== w2008s64 (64 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,716) win.c:10808: Test failed: got minimized pos (0,716) win.c:10820: Test failed: got minimized pos (0,716) win.c:10833: Test failed: got minimized pos (0,716) win.c:10846: Test failed: got minimized pos (0,716) win.c:10859: Test failed: got minimized pos (0,716) win.c:10872: Test failed: got minimized pos (0,716) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== w7pro64 (64 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,701) win.c:10808: Test failed: got minimized pos (0,701) win.c:10820: Test failed: got minimized pos (0,701) win.c:10833: Test failed: got minimized pos (0,701) win.c:10846: Test failed: got minimized pos (0,701) win.c:10859: Test failed: got minimized pos (0,701) win.c:10872: Test failed: got minimized pos (0,701) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== w864 (64 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,700) win.c:10808: Test failed: got minimized pos (0,700) win.c:10820: Test failed: got minimized pos (0,700) win.c:10833: Test failed: got minimized pos (0,700) win.c:10846: Test failed: got minimized pos (0,700) win.c:10859: Test failed: got minimized pos (0,700) win.c:10872: Test failed: got minimized pos (0,700) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
=== w1064 (64 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,700) win.c:10808: Test failed: got minimized pos (0,700) win.c:10820: Test failed: got minimized pos (0,700) win.c:10833: Test failed: got minimized pos (0,700) win.c:10846: Test failed: got minimized pos (0,700) win.c:10859: Test failed: got minimized pos (0,700) win.c:10872: Test failed: got minimized pos (0,700) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
On 2/10/19 1:39 PM, Marvin wrote:
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47392
Your paranoid android.
=== wvistau64 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,713) win.c:10808: Test failed: got minimized pos (0,713) win.c:10820: Test failed: got minimized pos (0,713) win.c:10833: Test failed: got minimized pos (0,713) win.c:10846: Test failed: got minimized pos (0,713) win.c:10859: Test failed: got minimized pos (0,713) win.c:10872: Test failed: got minimized pos (0,713) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
*snip*
This fails because test_shell_window(), which is pretty pathological, kills explorer.exe, and that doesn't restart itself until the test program terminates. What can be done about this, if anything?
Zebediah Figura z.figura12@gmail.com writes:
On 2/10/19 1:39 PM, Marvin wrote:
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47392
Your paranoid android.
=== wvistau64 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,713) win.c:10808: Test failed: got minimized pos (0,713) win.c:10820: Test failed: got minimized pos (0,713) win.c:10833: Test failed: got minimized pos (0,713) win.c:10846: Test failed: got minimized pos (0,713) win.c:10859: Test failed: got minimized pos (0,713) win.c:10872: Test failed: got minimized pos (0,713) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
*snip*
This fails because test_shell_window(), which is pretty pathological, kills explorer.exe, and that doesn't restart itself until the test program terminates. What can be done about this, if anything?
The obvious fix is to run your test before the one that kills the shell window. Though if the behavior depends on having a shell window, it may be interesting to test both cases.
On 2/13/19 2:16 PM, Alexandre Julliard wrote:
Zebediah Figura z.figura12@gmail.com writes:
On 2/10/19 1:39 PM, Marvin wrote:
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47392
Your paranoid android.
=== wvistau64 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,713) win.c:10808: Test failed: got minimized pos (0,713) win.c:10820: Test failed: got minimized pos (0,713) win.c:10833: Test failed: got minimized pos (0,713) win.c:10846: Test failed: got minimized pos (0,713) win.c:10859: Test failed: got minimized pos (0,713) win.c:10872: Test failed: got minimized pos (0,713) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
*snip*
This fails because test_shell_window(), which is pretty pathological, kills explorer.exe, and that doesn't restart itself until the test program terminates. What can be done about this, if anything?
The obvious fix is to run your test before the one that kills the shell window. Though if the behavior depends on having a shell window, it may be interesting to test both cases.
Thanks. I guess I wasn't sure if that was an acceptable solution.
I guess the behaviour here makes sense—if there's no shell window, there won't be a taskbar, and so windows would have no way of being restored if they're minimized offscreen. But I'm also not sure it's something that there's any point replicating in Wine (either windows are offscreen anyway due to WM integration, or explorer.exe is necessary to run the virtual desktop), so I'll leave off testing this, unless you think it'd be better to do so.
On 2/14/19 6:17 AM, Zebediah Figura wrote:
On 2/13/19 2:16 PM, Alexandre Julliard wrote:
Zebediah Figura z.figura12@gmail.com writes:
On 2/10/19 1:39 PM, Marvin wrote:
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47392
Your paranoid android.
=== wvistau64 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,713) win.c:10808: Test failed: got minimized pos (0,713) win.c:10820: Test failed: got minimized pos (0,713) win.c:10833: Test failed: got minimized pos (0,713) win.c:10846: Test failed: got minimized pos (0,713) win.c:10859: Test failed: got minimized pos (0,713) win.c:10872: Test failed: got minimized pos (0,713) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
*snip*
This fails because test_shell_window(), which is pretty pathological, kills explorer.exe, and that doesn't restart itself until the test program terminates. What can be done about this, if anything?
The obvious fix is to run your test before the one that kills the shell window. Though if the behavior depends on having a shell window, it may be interesting to test both cases.
Thanks. I guess I wasn't sure if that was an acceptable solution.
I guess the behaviour here makes sense—if there's no shell window, there won't be a taskbar, and so windows would have no way of being restored if they're minimized offscreen. But I'm also not sure it's something that there's any point replicating in Wine (either windows are offscreen anyway due to WM integration, or explorer.exe is necessary to run the virtual desktop), so I'll leave off testing this, unless you think it'd be better to do so.
Hi Zeb,
Just wondering, could this (missing) behavior have something to do with https://bugs.winehq.org/show_bug.cgi?id=15346
On 2/14/19 4:25 AM, Gabriel Ivăncescu wrote:
On 2/14/19 6:17 AM, Zebediah Figura wrote:
On 2/13/19 2:16 PM, Alexandre Julliard wrote:
Zebediah Figura z.figura12@gmail.com writes:
On 2/10/19 1:39 PM, Marvin wrote:
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47392
Your paranoid android.
=== wvistau64 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,713) win.c:10808: Test failed: got minimized pos (0,713) win.c:10820: Test failed: got minimized pos (0,713) win.c:10833: Test failed: got minimized pos (0,713) win.c:10846: Test failed: got minimized pos (0,713) win.c:10859: Test failed: got minimized pos (0,713) win.c:10872: Test failed: got minimized pos (0,713) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
*snip*
This fails because test_shell_window(), which is pretty pathological, kills explorer.exe, and that doesn't restart itself until the test program terminates. What can be done about this, if anything?
The obvious fix is to run your test before the one that kills the shell window. Though if the behavior depends on having a shell window, it may be interesting to test both cases.
Thanks. I guess I wasn't sure if that was an acceptable solution.
I guess the behaviour here makes sense—if there's no shell window, there won't be a taskbar, and so windows would have no way of being restored if they're minimized offscreen. But I'm also not sure it's something that there's any point replicating in Wine (either windows are offscreen anyway due to WM integration, or explorer.exe is necessary to run the virtual desktop), so I'll leave off testing this, unless you think it'd be better to do so.
Hi Zeb,
Just wondering, could this (missing) behavior have something to do with https://bugs.winehq.org/show_bug.cgi?id=15346
It's not immediately evident to me why it would, I guess? Does the program call SetShellWindow()?
On 2/14/19 6:01 PM, Zebediah Figura wrote:
On 2/14/19 4:25 AM, Gabriel Ivăncescu wrote:
On 2/14/19 6:17 AM, Zebediah Figura wrote:
On 2/13/19 2:16 PM, Alexandre Julliard wrote:
Zebediah Figura z.figura12@gmail.com writes:
On 2/10/19 1:39 PM, Marvin wrote:
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47392
Your paranoid android.
=== wvistau64 (32 bit report) ===
user32: win.c:10796: Test failed: got minimized pos (0,713) win.c:10808: Test failed: got minimized pos (0,713) win.c:10820: Test failed: got minimized pos (0,713) win.c:10833: Test failed: got minimized pos (0,713) win.c:10846: Test failed: got minimized pos (0,713) win.c:10859: Test failed: got minimized pos (0,713) win.c:10872: Test failed: got minimized pos (0,713) win.c:10906: Test failed: got minimized pos (100,100) win.c:10928: Test failed: got minimized pos (100,100)
*snip*
This fails because test_shell_window(), which is pretty pathological, kills explorer.exe, and that doesn't restart itself until the test program terminates. What can be done about this, if anything?
The obvious fix is to run your test before the one that kills the shell window. Though if the behavior depends on having a shell window, it may be interesting to test both cases.
Thanks. I guess I wasn't sure if that was an acceptable solution.
I guess the behaviour here makes sense—if there's no shell window, there won't be a taskbar, and so windows would have no way of being restored if they're minimized offscreen. But I'm also not sure it's something that there's any point replicating in Wine (either windows are offscreen anyway due to WM integration, or explorer.exe is necessary to run the virtual desktop), so I'll leave off testing this, unless you think it'd be better to do so.
Hi Zeb,
Just wondering, could this (missing) behavior have something to do with https://bugs.winehq.org/show_bug.cgi?id=15346
It's not immediately evident to me why it would, I guess? Does the program call SetShellWindow()?
It calls SetWindowPos when it's being moved, however, the problem is that somehow it ends up snapped to negative coordinate (e.g. -width of window) when moved to the edge (it "snaps" to the edge on either side).
X11 driver code then unmaps this window because it's "out of screen", so it disappears. My workaround patch in that bug report queries the X11 server for the actual position because the WM will deny the negative placement, and it seems to work. However I'm not certain it's the proper solution because I think the negative placement shouldn't happen in the first place. No idea why it does.
But it probably has nothing to do with it as you said, I didn't look into it so I assumed it had something to do with WM integration, because you mentioned it. But nevermind, thanks for the answer. :-)