]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/choice.cpp
Fixed VC6 compilation - wxAny(const wxVariant&) ctor required a specific 'template<>')
[wxWidgets.git] / src / msw / choice.cpp
index fd54852b9da951bc91c4ccfa1cdd0d20f3059c09..8abdba2c70527f1bebdbfdbc287a292247a0f134 100644 (file)
@@ -553,8 +553,21 @@ void wxChoice::DoSetSize(int x, int y,
                          int width, int height,
                          int sizeFlags)
 {
                          int width, int height,
                          int sizeFlags)
 {
+    const int heightBest = GetBestSize().y;
+
     // we need the real height below so get the current one if it's not given
     // we need the real height below so get the current one if it's not given
-    if ( height != wxDefaultCoord && height != GetBestSize().y )
+    if ( height == wxDefaultCoord )
+    {
+        // height not specified, use the same as before
+        DoGetSize(NULL, &height);
+    }
+    else if ( height == heightBest )
+    {
+        // we don't need to manually manage our height, let the system use the
+        // default one
+        m_heightOwn = wxDefaultCoord;
+    }
+    else // non-default height specified
     {
         // set our new own height but be careful not to make it too big: the
         // native control apparently stores it as a single byte and so setting
     {
         // set our new own height but be careful not to make it too big: the
         // native control apparently stores it as a single byte and so setting
@@ -568,10 +581,6 @@ void wxChoice::DoSetSize(int x, int y,
         else if ( m_heightOwn < COMBO_HEIGHT_ADJ )
             m_heightOwn = COMBO_HEIGHT_ADJ;
     }
         else if ( m_heightOwn < COMBO_HEIGHT_ADJ )
             m_heightOwn = COMBO_HEIGHT_ADJ;
     }
-    else // height not specified
-    {
-        DoGetSize(NULL, &height);
-    }
 
 
     // the height which we must pass to Windows should be the total height of
 
 
     // the height which we must pass to Windows should be the total height of