Added part of patch

[ 1573619 ] Fix for Reentrance problems in events
  in slightly modified form.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2006-10-10 10:28:00 +00:00
parent 6f1db55b94
commit 5fa150e233
3 changed files with 39 additions and 3 deletions

View File

@@ -298,6 +298,15 @@ void wxAppConsole::ProcessPendingEvents()
// iterate until the list becomes empty
wxList::compatibility_iterator node = wxPendingEvents->GetFirst();
while (node &&
((wxEvtHandler *)node->GetData())->IsEventHandlingInProgress() &&
((wxEvtHandler *)node->GetData())->IsReentranceAllowed() == false)
{
// skip over event
node = node->GetNext();
}
while (node)
{
wxEvtHandler *handler = (wxEvtHandler *)node->GetData();
@@ -312,6 +321,14 @@ void wxAppConsole::ProcessPendingEvents()
wxENTER_CRIT_SECT( *wxPendingEventsLocker );
node = wxPendingEvents->GetFirst();
while (node &&
((wxEvtHandler *)node->GetData())->IsEventHandlingInProgress() &&
((wxEvtHandler *)node->GetData())->IsReentranceAllowed() == false)
{
// skip over event
node = node->GetNext();
}
}
wxLEAVE_CRIT_SECT( *wxPendingEventsLocker );