X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c30199bfdde4b515c928742ccabd5dc25004227e..2eafd712f13ebf2567d65c8ba5c78ef7006ff023:/src/common/sizer.cpp diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp index 9a0cb0fcf7..6030fd9f20 100644 --- a/src/common/sizer.cpp +++ b/src/common/sizer.cpp @@ -837,7 +837,8 @@ void wxSizer::DeleteWindows() wxSize wxSizer::Fit( wxWindow *window ) { // take the min size by default and limit it by max size - wxSize size = GetMinWindowSize(window); + wxSize size = GetMinClientSize(window); + wxSize sizeMax; wxTopLevelWindow *tlw = wxDynamicCast(window, wxTopLevelWindow); if ( tlw ) @@ -848,7 +849,7 @@ wxSize wxSizer::Fit( wxWindow *window ) // do nothing return tlw->GetSize(); } - + // limit the window to the size of the display it is on int disp = wxDisplay::GetFromWindow(window); if ( disp == wxNOT_FOUND ) @@ -857,40 +858,29 @@ wxSize wxSizer::Fit( wxWindow *window ) disp = 0; } - wxSize sizeMax = wxDisplay(disp).GetClientArea().GetSize(); - + sizeMax = wxDisplay(disp).GetClientArea().GetSize(); + // space for decorations and toolbars etc. wxSize tlw_client_size = tlw->GetClientSize(); wxSize tlw_size = tlw->GetSize(); sizeMax.x -= tlw_size.x - tlw_client_size.x; sizeMax.y -= tlw_size.y - tlw_client_size.y; - - if ( sizeMax.x != wxDefaultCoord && size.x > sizeMax.x ) - size.x = sizeMax.x; - if ( sizeMax.y != wxDefaultCoord && size.y > sizeMax.y ) - size.y = sizeMax.y; - - // set client size - tlw->SetClientSize( size ); - - // return entire size - return tlw->GetSize(); } else { - wxSize sizeMax = GetMaxWindowSize(window); - - if ( sizeMax.x != wxDefaultCoord && size.x > sizeMax.x ) - size.x = sizeMax.x; - if ( sizeMax.y != wxDefaultCoord && size.y > sizeMax.y ) - size.y = sizeMax.y; + sizeMax = GetMaxClientSize(window); + } - // set client size - window->SetClientSize( size ); + if ( sizeMax.x != wxDefaultCoord && size.x > sizeMax.x ) + size.x = sizeMax.x; + if ( sizeMax.y != wxDefaultCoord && size.y > sizeMax.y ) + size.y = sizeMax.y; - // return entire size - return window->GetSize(); - } + // set client size + window->SetClientSize( size ); + + // return entire size + return window->GetSize(); } void wxSizer::FitInside( wxWindow *window )