From 6c51ca3750d48a276ae05aaa8b0a62e653dc277d Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 27 Sep 2012 12:47:40 +0000 Subject: [PATCH] Account correctly for the controller when computing wxBookCtrl best size. We must not increase the total control size in the direction along the controller window as the size of the controller in this direction is determined by the size of the control itself. So doing this resulted in always increasing best size in this direction to be at least equal to the current size which was wrong. Closes #14496. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72563 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/bookctrl.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/common/bookctrl.cpp b/src/common/bookctrl.cpp index 6ab3784e11..9f0e284652 100644 --- a/src/common/bookctrl.cpp +++ b/src/common/bookctrl.cpp @@ -109,21 +109,17 @@ wxSize wxBookCtrlBase::CalcSizeFromPage(const wxSize& sizePage) const if ( !m_bookctrl || !m_bookctrl->IsShown() ) return sizePage; + // Notice that the controller size is its current size while we really want + // to have its best size. So we only take into account its size in the + // direction in which we should add it but not in the other one, where the + // controller size is determined by the size of wxBookCtrl itself. const wxSize sizeController = GetControllerSize(); wxSize size = sizePage; if ( IsVertical() ) - { - if ( sizeController.x > sizePage.x ) - size.x = sizeController.x; size.y += sizeController.y + GetInternalBorder(); - } else // left/right aligned - { size.x += sizeController.x + GetInternalBorder(); - if ( sizeController.y > sizePage.y ) - size.y = sizeController.y; - } return size; } -- 2.45.2