earlier in the Create process.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27343
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
void wxWindowBase::SetBestSize(const wxSize& size)
{
void wxWindowBase::SetBestSize(const wxSize& size)
{
- // the size only needs to be changed if the current size is incomplete,
- // i.e. one of the components was specified as default -- so if both
- // were given, simply don't do anything and in particular don't call
- // potentially expensive DoGetBestSize()
+ // If the given size is incomplete then merge with the best size.
wxSize sizeBest;
if ( size.x == -1 || size.y == -1 )
{
wxSize sizeBest;
if ( size.x == -1 || size.y == -1 )
{
sizeBest.x = size.x;
if ( size.y != -1 )
sizeBest.y = size.y;
sizeBest.x = size.x;
if ( size.y != -1 )
sizeBest.y = size.y;
- else // have explicit size
+ else // have complete explicit size
+ // Change the size if needed
+ if (GetSize() != sizeBest)
+ SetSize(sizeBest);
+
// don't shrink the control below its best size
m_minWidth = sizeBest.x;
m_minHeight = sizeBest.y;
// don't shrink the control below its best size
m_minWidth = sizeBest.x;
m_minHeight = sizeBest.y;