From db2644e238a92c71db0db181016ee019472e7c06 Mon Sep 17 00:00:00 2001 From: Anatoly Lyutin Date: Thu, 31 Jul 2008 13:59:02 +0400 Subject: [PATCH] Add !hwnd argument processing in set_active_window() --- dlls/user32/focus.c | 3 +++ dlls/user32/tests/msg.c | 7 ++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dlls/user32/focus.c b/dlls/user32/focus.c index 3253a87..a131150 100644 --- a/dlls/user32/focus.c +++ b/dlls/user32/focus.c @@ -85,6 +85,9 @@ static BOOL set_active_window( HWND hwnd, HWND *prev, BOOL mouse, BOOL focus ) return TRUE; } + if (!hwnd) + hwnd = IsWindowVisible(GetParent(previous)) ? GetParent(previous) : NULL; + /* call CBT hook chain */ cbt.fMouse = mouse; cbt.hWndActive = previous; diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index c2012d5..48dbbba 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -10154,11 +10154,8 @@ static void test_SetActiveWindow(void) trace("SetActiveWindow(hwnd), hwnd visible\n"); ret = SetActiveWindow(hwnd); - todo_wine - { - ok( ret == hwnd, "Failed to SetActiveWindow(hwnd), hwnd visible\n"); - } - ok_sequence(SetActiveWindowSeq1, "SetActiveWindow(hwnd), hwnd visible", TRUE); + ok( ret == hwnd, "Failed to SetActiveWindow(hwnd), hwnd visible\n"); + ok_sequence(SetActiveWindowSeq1, "SetActiveWindow(hwnd), hwnd visible", FALSE); flush_sequence(); trace("SetActiveWindow(popup), hwnd visible, popup visble\n"); -- 1.5.4.5.GIT