From b10b02742388233a4d71ba4f39c82ac87f5582e3 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Mon, 13 Oct 2014 07:19:58 +0000 Subject: [PATCH] Fix clearing wxPG Properties deleted immediately in wxPropertyGridPageState::DoClear() should be first removed from the lists of pending deletions. Closes #16617 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78014 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/propgrid/propgridpagestate.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/propgrid/propgridpagestate.cpp b/src/propgrid/propgridpagestate.cpp index 9912fa5b29..a38b13b122 100644 --- a/src/propgrid/propgridpagestate.cpp +++ b/src/propgrid/propgridpagestate.cpp @@ -304,6 +304,23 @@ void wxPropertyGridPageState::DoClear() } else { + // Properties which will be deleted immediately + // should be removed from the lists of pending deletions. + for (unsigned int i = 0; i < m_regularArray.GetChildCount(); i++) + { + wxPGProperty* p = m_regularArray.Item(i); + int index = m_pPropGrid->m_deletedProperties.Index(p); + if (index != wxNOT_FOUND) + { + m_pPropGrid->m_deletedProperties.RemoveAt(index); + } + index = m_pPropGrid->m_removedProperties.Index(p); + if (index != wxNOT_FOUND) + { + m_pPropGrid->m_removedProperties.RemoveAt(index); + } + } + m_regularArray.Empty(); if ( m_abcArray ) m_abcArray->Empty();