Property removal and deletion done from wxPropertyGrid event handler is now postponed to idle event
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -4535,9 +4535,10 @@ bool wxPropertyGrid::SendEvent( int eventType, wxPGProperty* p,
|
||||
evt.SetCanVeto(true);
|
||||
}
|
||||
|
||||
wxPropertyGridEvent* prevProcessedEvent = m_processedEvent;
|
||||
m_processedEvent = &evt;
|
||||
m_eventObject->HandleWindowEvent(evt);
|
||||
m_processedEvent = NULL;
|
||||
m_processedEvent = prevProcessedEvent;
|
||||
|
||||
return evt.WasVetoed();
|
||||
}
|
||||
@@ -5639,6 +5640,27 @@ void wxPropertyGrid::OnIdle( wxIdleEvent& WXUNUSED(event) )
|
||||
if ( tlp != m_tlp )
|
||||
OnTLPChanging(tlp);
|
||||
}
|
||||
|
||||
//
|
||||
// Resolve pending property removals
|
||||
if ( m_deletedProperties.size() > 0 )
|
||||
{
|
||||
wxArrayPGProperty& arr = m_deletedProperties;
|
||||
for ( unsigned int i=0; i<arr.size(); i++ )
|
||||
{
|
||||
DeleteProperty(arr[i]);
|
||||
}
|
||||
arr.clear();
|
||||
}
|
||||
if ( m_removedProperties.size() > 0 )
|
||||
{
|
||||
wxArrayPGProperty& arr = m_removedProperties;
|
||||
for ( unsigned int i=0; i<arr.size(); i++ )
|
||||
{
|
||||
RemoveProperty(arr[i]);
|
||||
}
|
||||
arr.clear();
|
||||
}
|
||||
}
|
||||
|
||||
bool wxPropertyGrid::IsEditorFocused() const
|
||||
|
Reference in New Issue
Block a user