diff --git a/dlls/user32/mdi.c b/dlls/user32/mdi.c index 60297b0..eb257de 100644 --- a/dlls/user32/mdi.c +++ b/dlls/user32/mdi.c @@ -649,6 +649,10 @@ static LONG MDI_ChildActivate( HWND client, HWND child ) } SendMessageW( child, WM_MDIACTIVATE, (WPARAM)prevActiveWnd, (LPARAM)child ); + + if ( IsZoomed( child ) ) + SetWindowPos( frame, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_FRAMECHANGED | SWP_NOZORDER ); + return TRUE; } diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 98fa424..fde23fb 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -3218,7 +3218,7 @@ static void test_mdi_messages(void) 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, mdi_client, 0, GetModuleHandleA(0), NULL); assert(mdi_child); - ok_sequence(WmCreateMDIchildVisibleMaxSeq1, "Create maximized visible 1st MDI child window", TRUE); + ok_sequence(WmCreateMDIchildVisibleMaxSeq1, "Create maximized visible 1st MDI child window", FALSE); ok(IsZoomed(mdi_child), "1st MDI child should be maximized\n"); ok(GetActiveWindow() == mdi_frame, "wrong active window %p\n", GetActiveWindow()); @@ -3364,7 +3364,7 @@ static void test_mdi_messages(void) 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, mdi_client, 0, GetModuleHandleA(0), NULL); assert(mdi_child); - ok_sequence(WmCreateMDIchildVisibleMaxSeq1, "Create maximized visible 1st MDI child window(Switch test)", TRUE); + ok_sequence(WmCreateMDIchildVisibleMaxSeq1, "Create maximized visible 1st MDI child window(Switch test)", FALSE); ok(IsZoomed(mdi_child), "1st MDI child should be maximized(Switch test)\n"); ok(GetActiveWindow() == mdi_frame, "wrong active window %p(Switch test)\n", GetActiveWindow());