Index: winpos.c =================================================================== --- winpos.c (revision 48122) +++ winpos.c (working copy) @@ -739,15 +739,25 @@ /* Some sanity checks */ + MinMax.ptMaxTrackSize.x = max( MinMax.ptMaxTrackSize.x, MinMax.ptMinTrackSize.x ); + MinMax.ptMaxTrackSize.y = max( MinMax.ptMaxTrackSize.y, MinMax.ptMinTrackSize.y ); + + HWND tHwnd = GetParent(GetParent(GetTaskmanWindow())); + + if (IsWindow(tHwnd)) { /* Subtract the height of the taskbar */ + + GetWindowRect(tHwnd, &rc); + + MinMax.ptMaxSize.y = MinMax.ptMaxSize.y - (rc.bottom - rc.top); + MinMax.ptMaxTrackSize.y = MinMax.ptMaxTrackSize.y - (rc.bottom - rc.top); + } + + TRACE("%d %d / %d %d / %d %d / %d %d\n", MinMax.ptMaxSize.x, MinMax.ptMaxSize.y, MinMax.ptMaxPosition.x, MinMax.ptMaxPosition.y, MinMax.ptMaxTrackSize.x, MinMax.ptMaxTrackSize.y, MinMax.ptMinTrackSize.x, MinMax.ptMinTrackSize.y); - MinMax.ptMaxTrackSize.x = max( MinMax.ptMaxTrackSize.x, - MinMax.ptMinTrackSize.x ); - MinMax.ptMaxTrackSize.y = max( MinMax.ptMaxTrackSize.y, - MinMax.ptMinTrackSize.y ); if (maxSize) *maxSize = MinMax.ptMaxSize; if (maxPos) *maxPos = MinMax.ptMaxPosition;