X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/abfdefede3209ac777bdac8a65bae8bf008f327b..f5406730ffdde05e710a68367ac45c15a11c00bc:/src/common/bookctrl.cpp diff --git a/src/common/bookctrl.cpp b/src/common/bookctrl.cpp index cc2141b793..d551d8bf2e 100644 --- a/src/common/bookctrl.cpp +++ b/src/common/bookctrl.cpp @@ -105,7 +105,10 @@ void wxBookCtrlBase::DoInvalidateBestSize() wxSize wxBookCtrlBase::CalcSizeFromPage(const wxSize& sizePage) const { - // we need to add the size of the choice control and the border between + // Add the size of the controller and the border between if it's shown. + if ( !m_bookctrl || !m_bookctrl->IsShown() ) + return sizePage; + const wxSize sizeController = GetControllerSize(); wxSize size = sizePage; @@ -283,19 +286,19 @@ wxSize wxBookCtrlBase::GetControllerSize() const if ( !m_bookctrl || !m_bookctrl->IsShown() ) return wxSize(0, 0); - const wxSize sizeClient = GetClientSize(), - sizeCtrl = m_bookctrl->GetBestSize(); + const wxSize sizeClient = GetClientSize(); wxSize size; + // Ask for the best width/height considering the other direction. if ( IsVertical() ) { size.x = sizeClient.x; - size.y = sizeCtrl.y; + size.y = m_bookctrl->GetBestHeight(sizeClient.x); } else // left/right aligned { - size.x = sizeCtrl.x; + size.x = m_bookctrl->GetBestWidth(sizeClient.y); size.y = sizeClient.y; }