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
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user