Hopefully the last in a series of fixes for size of maximized windows Modified: trunk/reactos/subsys/win32k/ntuser/winpos.c _____
Modified: trunk/reactos/subsys/win32k/ntuser/winpos.c --- trunk/reactos/subsys/win32k/ntuser/winpos.c 2005-09-16 20:13:26 UTC (rev 17889) +++ trunk/reactos/subsys/win32k/ntuser/winpos.c 2005-09-16 21:15:58 UTC (rev 17890) @@ -351,8 +351,8 @@
case SW_MAXIMIZE: { - co_WinPosGetMinMaxInfo(Window, NULL, &InternalPos->MaxPos, - NULL, &Size); + co_WinPosGetMinMaxInfo(Window, &Size, &InternalPos->MaxPos, + NULL, NULL); DPRINT("Maximize: %d,%d %dx%d\n", InternalPos->MaxPos.x, InternalPos->MaxPos.y, Size.x, Size.y); if (Window->Style & WS_MINIMIZE) @@ -420,25 +420,23 @@ IntGetDesktopWorkArea(Desktop, &WorkArea);
/* Get default values. */ - Info->ptMaxSize.x = WorkArea.right - WorkArea.left; - Info->ptMaxSize.y = WorkArea.bottom - WorkArea.top; Info->ptMinTrackSize.x = UserGetSystemMetrics(SM_CXMINTRACK); Info->ptMinTrackSize.y = UserGetSystemMetrics(SM_CYMINTRACK); + + IntGetWindowBorderMeasures(Window, &XInc, &YInc); + Info->ptMaxSize.x = WorkArea.right - WorkArea.left + 2 * XInc; + Info->ptMaxSize.y = WorkArea.bottom - WorkArea.top + 2 * YInc; Info->ptMaxTrackSize.x = Info->ptMaxSize.x; Info->ptMaxTrackSize.y = Info->ptMaxSize.y;
- IntGetWindowBorderMeasures(Window, &XInc, &YInc); - Info->ptMaxTrackSize.x += 2 * XInc; - Info->ptMaxTrackSize.y += 2 * YInc; - if (Window->InternalPos != NULL) { Info->ptMaxPosition = Window->InternalPos->MaxPos; } else { - Info->ptMaxPosition.x -= WorkArea.left + XInc; - Info->ptMaxPosition.y -= WorkArea.top + YInc; + Info->ptMaxPosition.x = WorkArea.left - XInc; + Info->ptMaxPosition.y = WorkArea.top - YInc; } }