]> git.saurik.com Git - wxWidgets.git/commitdiff
don't save the initial selection if it's invalid in CBN_DROPDOWN (refixes #8474 witho...
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 27 Oct 2008 18:47:07 +0000 (18:47 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 27 Oct 2008 18:47:07 +0000 (18:47 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/combobox.cpp

index e1e0d991cffa04082793421fc56b6d9ef58fcc5f..5faed26cb54965906280413dfc47464a2dce36f6 100644 (file)
@@ -312,6 +312,18 @@ bool wxComboBox::MSWCommand(WXUINT param, WXWORD id)
 
     switch ( param )
     {
+        case CBN_DROPDOWN:
+            // remember the last selection, just as wxChoice does
+            m_lastAcceptedSelection = GetCurrentSelection();
+            if ( m_lastAcceptedSelection == -1 )
+            {
+                // but unlike with wxChoice we may have no selection but still
+                // have some text and we should avoid erasing it if the drop
+                // down is cancelled (see #8474)
+                m_lastAcceptedSelection = wxID_NONE;
+            }
+            break;
+
         case CBN_SELENDOK:
 #ifndef __SMARTPHONE__
             // we need to reset this to prevent the selection from being undone
@@ -365,7 +377,7 @@ bool wxComboBox::MSWCommand(WXUINT param, WXWORD id)
     }
 
     // skip wxChoice version as it would generate its own events for
-    // CBN_SELENDOK
+    // CBN_SELENDOK and also interfere with our handling of CBN_DROPDOWN
     return true;
 }