]> git.saurik.com Git - wxWidgets.git/commitdiff
Call SetSize for explicit sizees too in case it wasn't called before
authorRobin Dunn <robin@alldunn.com>
Tue, 18 May 2004 19:30:31 +0000 (19:30 +0000)
committerRobin Dunn <robin@alldunn.com>
Tue, 18 May 2004 19:30:31 +0000 (19:30 +0000)
earlier in the Create process.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/wincmn.cpp

index 34bb9d4924b7f6e4c4900359ebe11d299aea410e..450132dc603821cc21ae58e4c24ab5ea08b821dd 100644 (file)
@@ -622,10 +622,7 @@ wxSize wxWindowBase::DoGetBestSize() const
 
 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 )
     {
@@ -634,14 +631,16 @@ void wxWindowBase::SetBestSize(const wxSize& size)
             sizeBest.x = size.x;
         if ( size.y != -1 )
             sizeBest.y = size.y;
-
-        SetSize(sizeBest);
     }
-    else // have explicit size
+    else // have complete explicit size
     {
         sizeBest = 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;