X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b445b6a76eddacd5bab45c71f640dad672d83393..24aab8e81a8627802e4111d9c99a50ece8d0026e:/src/generic/odcombo.cpp diff --git a/src/generic/odcombo.cpp b/src/generic/odcombo.cpp index c72efc280c..cccd7660f1 100644 --- a/src/generic/odcombo.cpp +++ b/src/generic/odcombo.cpp @@ -556,8 +556,16 @@ void wxVListBoxComboPopup::Delete( unsigned int item ) if ( (int)item == m_widestItem ) m_findWidest = true; + int sel = GetSelection(); + if ( IsCreated() ) wxVListBox::SetItemCount( wxVListBox::GetItemCount()-1 ); + + // Fix selection + if ( (int)item < sel ) + SetSelection(sel-1); + else if ( (int)item == sel ) + SetSelection(wxNOT_FOUND); } int wxVListBoxComboPopup::FindString(const wxString& s, bool bCase) const @@ -1051,12 +1059,15 @@ void wxOwnerDrawnComboBox::OnDrawBackground(wxDC& dc, const wxRect& rect, int it if ( GetVListBoxComboPopup()->IsCurrent((size_t)item) || (flags & wxODCB_PAINTING_CONTROL) ) { - int focusFlag = wxCONTROL_SELECTED; + int bgFlags = wxCONTROL_SELECTED; if ( (flags & wxODCB_PAINTING_CONTROL) != wxODCB_PAINTING_CONTROL ) - focusFlag |= wxCONTROL_ISSUBMENU; - - DrawFocusBackground(dc, rect, focusFlag ); + { + bgFlags |= wxCONTROL_ISSUBMENU; + PrepareBackground(dc, rect, bgFlags); + } + else if ( HasFlag(wxCB_READONLY) ) + PrepareBackground(dc, rect, bgFlags); } //else: do nothing for the normal items }