user32: Change SetFocus behavior on windows with parent and no WS_CHILD flag.
This commit is contained in:
parent
b816a8e629
commit
1cf3d8caa4
@ -277,6 +277,7 @@ HWND WINAPI SetFocus( HWND hwnd )
|
||||
HWND parent;
|
||||
LONG style = GetWindowLongW( hwndTop, GWL_STYLE );
|
||||
if (style & (WS_MINIMIZE | WS_DISABLED)) return 0;
|
||||
if (!(style & WS_CHILD)) break;
|
||||
parent = GetAncestor( hwndTop, GA_PARENT );
|
||||
if (!parent || parent == GetDesktopWindow())
|
||||
{
|
||||
|
@ -3723,6 +3723,25 @@ static void test_SetParent(void)
|
||||
todo_wine
|
||||
check_active_state(popup, 0, popup);
|
||||
|
||||
SetActiveWindow(parent);
|
||||
SetFocus(popup);
|
||||
check_active_state(popup, 0, popup);
|
||||
|
||||
EnableWindow(child1, FALSE);
|
||||
check_active_state(popup, 0, popup);
|
||||
SetFocus(parent);
|
||||
check_active_state(parent, 0, parent);
|
||||
SetFocus(popup);
|
||||
check_active_state(popup, 0, popup);
|
||||
EnableWindow(child1, TRUE);
|
||||
|
||||
ShowWindow(child1, SW_MINIMIZE);
|
||||
SetFocus(parent);
|
||||
check_active_state(parent, 0, parent);
|
||||
SetFocus(popup);
|
||||
check_active_state(popup, 0, popup);
|
||||
ShowWindow(child1, SW_HIDE);
|
||||
|
||||
SetActiveWindow(parent);
|
||||
SetFocus(parent);
|
||||
check_active_state(parent, 0, parent);
|
||||
|
Loading…
x
Reference in New Issue
Block a user