Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/user32/tests/win.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c index 0f683f858a1..a31255f505d 100644 --- a/dlls/user32/tests/win.c +++ b/dlls/user32/tests/win.c @@ -3164,7 +3164,17 @@ static void test_SetActiveWindow(HWND hwnd) ShowWindow(hwnd, SW_HIDE); SetFocus(0); SetActiveWindow(0); - check_wnd_state(0, 0, 0, 0); + + /* On w1064v1809, ShowWindow(hwnd, SW_HIDE) / SetActiveWindow(0) + * does not change active window to 0, and then focus is not + * restored either when window is activated. */ + if (broken(GetActiveWindow() != 0)) + { + check_wnd_state(hwnd, 0, 0, 0); + SetFocus(hwnd); + } + else + check_wnd_state(0, 0, 0, 0);
ShowWindow(hwnd, SW_SHOW); check_wnd_state(hwnd, hwnd, hwnd, 0); @@ -3188,7 +3198,17 @@ static void test_SetActiveWindow(HWND hwnd) check_wnd_state(hwnd, hwnd, hwnd, 0);
ShowWindow(hwnd, SW_HIDE); - check_wnd_state(0, 0, 0, 0); + + /* On w1064v1809, ShowWindow(hwnd, SW_HIDE) / SetActiveWindow(0) + * does not change active window to 0, and then focus is not + * restored either when window is activated. */ + if (broken(GetActiveWindow() != 0)) + { + check_wnd_state(hwnd, 0, 0, 0); + SetFocus(hwnd); + } + else + check_wnd_state(0, 0, 0, 0);
/* Invisible window. */ SetActiveWindow(hwnd);