]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/odcombo.cpp
Instead of having wxComboCtrl mimic wxTextEntry interface, make it actually inherit...
[wxWidgets.git] / src / generic / odcombo.cpp
index 5176871dddcd8b3f8c76fdf3ddf52fa7db1afa0d..fb9d6b43afb27be21a24ded8cbe57d60594ad403 100644 (file)
@@ -96,6 +96,18 @@ wxVListBoxComboPopup::~wxVListBoxComboPopup()
     Clear();
 }
 
     Clear();
 }
 
+void wxVListBoxComboPopup::SetFocus()
+{
+    // Suppress SetFocus() warning by simply not calling it. This combo popup
+    // has already been designed with the assumption that SetFocus() may not
+    // do anything useful, so it really doesn't need to be called.
+#ifdef __WXMSW__
+    //
+#else
+    wxVListBox::SetFocus();
+#endif
+}
+
 bool wxVListBoxComboPopup::LazyCreate()
 {
     // NB: There is a bug with wxVListBox that can be avoided by creating
 bool wxVListBoxComboPopup::LazyCreate()
 {
     // NB: There is a bug with wxVListBox that can be avoided by creating
@@ -358,11 +370,15 @@ bool wxVListBoxComboPopup::HandleKey( int keycode, bool saturate, wxChar keychar
         // (good for consistency)
         return true;
 
         // (good for consistency)
         return true;
 
-    m_value = value;
-
     if ( value >= 0 )
         m_combo->SetValue(m_strings[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;
     SendComboBoxEvent(m_value);
 
     return true;