From: Vadim Zeitlin Date: Mon, 2 Jul 2012 15:03:04 +0000 (+0000) Subject: Preserve client data in wxComboBox::SetString() in wxOSX/Cocoa. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/4b0bf080e13153e34236d97a2c00bda743131a63 Preserve client data in wxComboBox::SetString() in wxOSX/Cocoa. Don't reset the client data to NULL when we're just changing the item text. Closes #14146. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/osx/combobox_osx.cpp b/src/osx/combobox_osx.cpp index 3dc89288ee..9a1f1b75e2 100644 --- a/src/osx/combobox_osx.cpp +++ b/src/osx/combobox_osx.cpp @@ -189,8 +189,11 @@ wxString wxComboBox::GetStringSelection() const void wxComboBox::SetString(unsigned int n, const wxString& s) { - Delete(n); - Insert(s, n); + // Notice that we shouldn't delete and insert the item in this control + // itself as this would also affect the client data which we need to + // preserve here. + GetComboPeer()->RemoveItem(n); + GetComboPeer()->InsertItem(n, s); SetValue(s); // changing the item in the list won't update the display item }