]> git.saurik.com Git - wxWidgets.git/commitdiff
Process pending events before deleting pending objects, and do it
authorGuillermo Rodriguez Garcia <guille@iies.es>
Thu, 16 Mar 2000 12:05:01 +0000 (12:05 +0000)
committerGuillermo Rodriguez Garcia <guille@iies.es>
Thu, 16 Mar 2000 12:05:01 +0000 (12:05 +0000)
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

index 67a241c4e45639acdd62ce5a684c9584dce2faf8..1cba260bf5301fed46647f3dd8b219d9c54ebac7 100644 (file)
@@ -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();