don't lose the contents of the combobox if it was set to a value not in a list and a popup has been opened and closed (patch 1883474)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51616 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
ba959d4c98
commit
5de69dd366
@ -66,6 +66,8 @@ public:
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString& name = wxChoiceNameStr);
|
||||
|
||||
virtual void SetLabel(const wxString& label);
|
||||
|
||||
virtual unsigned int GetCount() const;
|
||||
virtual int GetSelection() const;
|
||||
virtual int GetCurrentSelection() const;
|
||||
|
@ -158,6 +158,21 @@ bool wxChoice::CreateAndInit(wxWindow *parent,
|
||||
return true;
|
||||
}
|
||||
|
||||
void wxChoice::SetLabel(const wxString& label)
|
||||
{
|
||||
if ( FindString(label) == wxNOT_FOUND )
|
||||
{
|
||||
// unless we explicitly do this here, CB_GETCURSEL will continue to
|
||||
// return the index of the previously selected item which will result
|
||||
// in wrongly replacing the value being set now with the previously
|
||||
// value if the user simply opens and closes (without selecting
|
||||
// anything) the combobox popup
|
||||
SetSelection(-1);
|
||||
}
|
||||
|
||||
wxChoiceBase::SetLabel(label);
|
||||
}
|
||||
|
||||
bool wxChoice::Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxPoint& pos,
|
||||
|
Loading…
Reference in New Issue
Block a user