X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c765e6fb9df639bb4e65a8824ed13a42f457027b..fda62793585ef3ebaa8823be7c1a3e3538e5349a:/src/generic/odcombo.cpp?ds=sidebyside diff --git a/src/generic/odcombo.cpp b/src/generic/odcombo.cpp index 5176871ddd..fb9d6b43af 100644 --- a/src/generic/odcombo.cpp +++ b/src/generic/odcombo.cpp @@ -96,6 +96,18 @@ wxVListBoxComboPopup::~wxVListBoxComboPopup() 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 @@ -358,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;