Must clear property selection in wxPGProperty::SetChoices() or risk a crash

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2010-02-26 15:45:30 +00:00
parent 9573840bcf
commit 26b22ae371
3 changed files with 13 additions and 5 deletions

View File

@@ -2109,10 +2109,11 @@ public:
*/
wxClientData *GetClientObject() const { return m_clientObject; }
/** Sets new set of choices for property.
/**
Sets new set of choices for the property.
@remarks
This operation clears the property value.
@remarks This operation deselects the property and clears its
value.
*/
bool SetChoices( wxPGChoices& choices );

View File

@@ -1364,9 +1364,10 @@ public:
void SetCell( int column, const wxPGCell& cell );
/**
Sets new set of choices for property.
Sets new set of choices for the property.
@remarks This operation clears the property value.
@remarks This operation deselects the property and clears its
value.
*/
bool SetChoices( wxPGChoices& choices );

View File

@@ -1911,6 +1911,12 @@ void wxPGProperty::SetChoiceSelection( int newValue )
bool wxPGProperty::SetChoices( wxPGChoices& choices )
{
// Property must be de-selected first (otherwise choices in
// the control would be de-synced with true choices)
wxPropertyGrid* pg = GetGrid();
if ( pg && pg->GetSelection() == this )
pg->ClearSelection();
m_choices.Assign(choices);
{