]> git.saurik.com Git - wxWidgets.git/commitdiff
fix for wxComboBox flicker on create (patch 598891)
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 22 Aug 2002 18:11:27 +0000 (18:11 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 22 Aug 2002 18:11:27 +0000 (18:11 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16685 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/combobox.cpp
src/msw/control.cpp

index ceb2d59b8e8b51cc9220a852490674cfc8d4b6f3..0e81ed856a2c3f3254328a59bb2a7c39c2625957 100644 (file)
@@ -304,6 +304,11 @@ bool wxComboBox::Create(wxWindow *parent, wxWindowID id,
                         const wxValidator& validator,
                         const wxString& name)
 {
+    // pretend that wxComboBox is hidden while it is positioned and resized and
+    // show it only right before leaving this method because otherwise there is
+    // some noticeable flicker while the control rearranges itself
+    m_isShown = FALSE;
+
     // first create wxWin object
     if ( !CreateControl(parent, id, pos, size, style, validator, name) )
         return FALSE;
@@ -360,6 +365,9 @@ bool wxComboBox::Create(wxWindow *parent, wxWindowID id,
                                       );
     }
 
+    // and finally, show the control
+    Show(TRUE);
+
     return TRUE;
 }
 
index 930d7542ce8ff106fbfb3ad4a5afffed908ee7f7..6593d6eed17d4f5b2308390a849e18f69ab613a0 100644 (file)
@@ -106,9 +106,14 @@ bool wxControl::MSWCreateControl(const wxChar *classname,
         exstyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D);
     }
 
-    // all controls should have these styles (wxWindows creates all controls
-    // visible by default)
-    style |= WS_CHILD | WS_VISIBLE;
+    // all controls should have this style
+    style |= WS_CHILD;
+
+    // create the control visible if it's currently shown for wxWindows
+    if ( m_isShown )
+    {
+        style |= WS_VISIBLE;
+    }
 
     int x = pos.x == -1 ? 0 : pos.x,
         y = pos.y == -1 ? 0 : pos.y,