]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix wxOwnerDrawnComboBox keyboard navigation with duplicate items.
authorVáclav Slavík <vslavik@fastmail.fm>
Fri, 3 Sep 2010 19:33:18 +0000 (19:33 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Fri, 3 Sep 2010 19:33:18 +0000 (19:33 +0000)
If the combobox contained duplicate strings (i.e. multiple items with the
same string value, but differing indexes), then navigating to the second
and subsequent ones skipped to the first occurence instead. We need to
preserve the index.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/generic/odcombo.cpp

index 47b567d1efd222f4b13e20bfa9d7ecfd9a644549..fb9d6b43afb27be21a24ded8cbe57d60594ad403 100644 (file)
@@ -370,11 +370,15 @@ bool wxVListBoxComboPopup::HandleKey( int keycode, bool saturate, wxChar keychar
         // (good for consistency)
         return true;
 
-    m_value = value;
-
     if ( value >= 0 )
         m_combo->SetValue(m_strings[value]);
 
+    // The m_combo->SetValue() call above sets m_value to the index of this
+    // string. But if there are more identical string, the index is of the
+    // first occurence, which may be wrong, so set the index explicitly here,
+    // _after_ the SetValue() call.
+    m_value = value;
+
     SendComboBoxEvent(m_value);
 
     return true;