From ae3b14872bca4ee65d1adf3c6d75ef66c5438aac Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 27 Oct 2008 18:47:07 +0000 Subject: [PATCH] don't save the initial selection if it's invalid in CBN_DROPDOWN (refixes #8474 without breaking #9995) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/combobox.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/msw/combobox.cpp b/src/msw/combobox.cpp index e1e0d991cf..5faed26cb5 100644 --- a/src/msw/combobox.cpp +++ b/src/msw/combobox.cpp @@ -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; }