call ProcessPendingEvents() from wxAppConsoleBase::ProcessIdle() too, not only from wxAppBase::ProcessIdle(); do not call it from wxConsoleEventLoop::Dispatch() as this results in unwanted reentrancies in the socket code when using it

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-01-02 22:18:10 +00:00
parent ebbf740764
commit 14eb37a05e
5 changed files with 7 additions and 18 deletions

View File

@@ -353,11 +353,11 @@ void wxAppBase::DeletePendingObjects()
// Returns true if more time is needed.
bool wxAppBase::ProcessIdle()
{
// process pending wx events before sending idle events
ProcessPendingEvents();
// call the base class version first, it will process the pending events
// (which should be done before the idle events generation) and send the
// idle event to wxTheApp itself
bool needMore = wxAppConsoleBase::ProcessIdle();
wxIdleEvent event;
bool needMore = false;
wxWindowList::compatibility_iterator node = wxTopLevelWindows.GetFirst();
while (node)
{
@@ -367,9 +367,6 @@ bool wxAppBase::ProcessIdle()
node = node->GetNext();
}
if (wxAppConsole::ProcessIdle())
needMore = true;
// 'Garbage' collection of windows deleted with Close().
DeletePendingObjects();