]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/combobox.cpp
Fixed inability to select no superscript and no subscript in wxRichTextCtrl's
[wxWidgets.git] / src / msw / combobox.cpp
index 9d8e4a542d7a1740440b2989faf24b0ade5705a7..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
@@ -343,6 +355,7 @@ bool wxComboBox::MSWCommand(WXUINT param, WXWORD id)
             // logical as the text does change)
 
         case CBN_EDITCHANGE:
+            if ( m_allowTextEvents )
             {
                 wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, GetId());
 
@@ -364,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;
 }