From 0ca580f6fb988ec1f7574e532260c322ba4db00e Mon Sep 17 00:00:00 2001 From: Guillermo Rodriguez Garcia Date: Thu, 16 Mar 2000 12:05:01 +0000 Subject: [PATCH] Process pending events before deleting pending objects, and do it regardless of the value of wxUSE_THREADS (wxPostEvents can be used in single threaded apps). Changed: wxApp::OnIdle git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/motif/app.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/motif/app.cpp b/src/motif/app.cpp index 67a241c4e4..1cba260bf5 100644 --- a/src/motif/app.cpp +++ b/src/motif/app.cpp @@ -477,13 +477,20 @@ void wxApp::OnIdle(wxIdleEvent& event) inOnIdle = TRUE; - // 'Garbage' collection of windows deleted with Close(). - DeletePendingObjects(); + // 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. Also removed the '#if wxUSE_THREADS' around it. + // Changed Mar/2000 before 2.1.14 -#if wxUSE_THREADS // Flush pending events. ProcessPendingEvents(); -#endif + + // 'Garbage' collection of windows deleted with Close(). + DeletePendingObjects(); // flush the logged messages if any wxLog *pLog = wxLog::GetActiveTarget();