From: Vadim Zeitlin Date: Sun, 11 May 2008 19:59:17 +0000 (+0000) Subject: fix appending items to sorted control (patch 1940384) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/fd11f777738a2572d3ee6b866d103cff5edfb667?ds=inline fix appending items to sorted control (patch 1940384) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53560 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index 2c01c0deb9..dfc732b91a 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -318,6 +318,7 @@ All (GUI): - Generalized wxScrolledWindow into wxScrolled template that can derive from any window class, not just wxPanel. - Allow having menu separators with ids != wxID_SEPARATOR (Jeff Tupper) +- Fix appending items to sorted wxComboCtrl after creation (Jaakko Salli) wxGTK: diff --git a/src/generic/odcombo.cpp b/src/generic/odcombo.cpp index d04d183089..fa036b21e2 100644 --- a/src/generic/odcombo.cpp +++ b/src/generic/odcombo.cpp @@ -1027,13 +1027,29 @@ int wxOwnerDrawnComboBox::DoInsertItems(const wxArrayStringsAdapter& items, EnsurePopupControl(); const unsigned int count = items.GetCount(); - for( unsigned int i = 0; i < count; ++i, ++pos ) + + if ( HasFlag(wxCB_SORT) ) { - GetVListBoxComboPopup()->Insert(items[i], pos); - AssignNewItemClientData(pos, clientData, i, type); + int n = pos; + + for ( unsigned int i = 0; i < count; ++i ) + { + int n = GetVListBoxComboPopup()->Append(items[i]); + AssignNewItemClientData(n, clientData, i, type); + } + + return n; } + else + { + for ( unsigned int i = 0; i < count; ++i, ++pos ) + { + GetVListBoxComboPopup()->Insert(items[i], pos); + AssignNewItemClientData(pos, clientData, i, type); + } - return pos - 1; + return pos - 1; + } } void wxOwnerDrawnComboBox::DoSetItemClientData(unsigned int n, void* clientData)