we don't use wxUSE_FILENAME any longer
[wxWidgets.git] / src / common / appcmn.cpp
index 8fa4b91bd4510aac63ba729f4ba518670334342d..02643c08e5b858f87805e03429db60009fccf2cd 100644 (file)
@@ -232,25 +232,6 @@ bool wxAppBase::ProcessIdle()
     return needMore;
 }
 
-#if 0
-// Send idle event to all top-level windows
-bool wxAppBase::SendIdleEvents()
-{
-    bool needMore = FALSE;
-
-    wxWindowList::compatibility_iterator node = wxTopLevelWindows.GetFirst();
-    while (node)
-    {
-        wxWindow* win = node->GetData();
-        if (SendIdleEvents(win))
-            needMore = TRUE;
-        node = node->GetNext();
-    }
-
-    return needMore;
-}
-#endif
-
 // Send idle event to window and all subwindows
 bool wxAppBase::SendIdleEvents(wxWindow* win, wxIdleEvent& event)
 {
@@ -269,8 +250,8 @@ bool wxAppBase::SendIdleEvents(wxWindow* win, wxIdleEvent& event)
     wxWindowList::compatibility_iterator node = win->GetChildren().GetFirst();
     while ( node )
     {
-        wxWindow *win = node->GetData();
-        if (SendIdleEvents(win, event))
+        wxWindow *child = node->GetData();
+        if (SendIdleEvents(child, event))
             needMore = TRUE;
 
         node = node->GetNext();
@@ -279,6 +260,26 @@ bool wxAppBase::SendIdleEvents(wxWindow* win, wxIdleEvent& event)
     return needMore;
 }
 
+void wxAppBase::OnIdle(wxIdleEvent& 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
+
+}
 
 // ----------------------------------------------------------------------------
 // wxGUIAppTraitsBase