From 6a467b6cc609a24f6749cdd0c566b6640c96e0ae Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Sun, 8 Jul 2007 05:31:32 +0000 Subject: [PATCH] process pending wx events before sending idle events git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@47229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/appcmn.cpp | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/common/appcmn.cpp b/src/common/appcmn.cpp index 199664b10c..e18ab5eff6 100644 --- a/src/common/appcmn.cpp +++ b/src/common/appcmn.cpp @@ -431,6 +431,9 @@ void wxAppBase::DeletePendingObjects() // Returns true if more time is needed. bool wxAppBase::ProcessIdle() { + // process pending wx events before sending idle events + ProcessPendingEvents(); + wxIdleEvent event; bool needMore = false; wxWindowList::compatibility_iterator node = wxTopLevelWindows.GetFirst(); @@ -447,6 +450,14 @@ bool wxAppBase::ProcessIdle() if (event.MoreRequested()) needMore = true; + // 'Garbage' collection of windows deleted with Close(). + DeletePendingObjects(); + +#if wxUSE_LOG + // flush the logged messages if any + wxLog::FlushActive(); +#endif + wxUpdateUIEvent::ResetUpdateTime(); return needMore; @@ -482,23 +493,6 @@ bool wxAppBase::SendIdleEvents(wxWindow* win, wxIdleEvent& event) void wxAppBase::OnIdle(wxIdleEvent& WXUNUSED(event)) { - // If there are pending events, we must process them: pending events - // are either events to the threads other than main or events posted - // with wxPostEvent() functions - // GRG: I have moved this here so that all pending events are processed - // before starting to delete any objects. This behaves better (in - // particular, wrt wxPostEvent) and is coherent with wxGTK's current - // behaviour. Changed Feb/2000 before 2.1.14 - ProcessPendingEvents(); - - // 'Garbage' collection of windows deleted with Close(). - DeletePendingObjects(); - -#if wxUSE_LOG - // flush the logged messages if any - wxLog::FlushActive(); -#endif // wxUSE_LOG - } // ----------------------------------------------------------------------------