]> git.saurik.com Git - wxWidgets.git/commitdiff
Flush log events in console applications as well.
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 19 Aug 2009 23:51:24 +0000 (23:51 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 19 Aug 2009 23:51:24 +0000 (23:51 +0000)
Move wxLog::FlushActive() call from wxAppBase::ProcessIdle() to
wxAppConsoleBase::ProcessIdle().

Now that log messages from background threads are queued until the main thread
log target is flushed, we need to call wxLog::FlushActive() periodically to
see them at all, see #11115.

Besides, even though the default log target in console applications outputs
the messages immediately without queuing them, it is quite possible to use a
non-default target which does require flushing so this change also fixes a
potential bug with non-default log targets.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/appbase.cpp
src/common/appcmn.cpp

index db26530d662886db24b7458f2a2f00664ffc0c1c..c2d019fd253b4b9b7c08dc2aca1fe5b3d3a08efe 100644 (file)
@@ -340,6 +340,12 @@ bool wxAppConsoleBase::ProcessIdle()
     event.SetEventObject(this);
     ProcessEvent(event);
 
+#if wxUSE_LOG
+    // flush the logged messages if any (do this after processing the events
+    // which could have logged new messages)
+    wxLog::FlushActive();
+#endif
+
     return event.MoreRequested();
 }
 
index 61930ed1f5a61d1ce6a89a56e1544c89c9ca17ef..ea3a17c7c9cf12fcc26a210d8df3c27fbaea6233 100644 (file)
@@ -355,11 +355,6 @@ bool wxAppBase::ProcessIdle()
         node = node->GetNext();
     }
 
-#if wxUSE_LOG
-    // flush the logged messages if any
-    wxLog::FlushActive();
-#endif
-
     wxUpdateUIEvent::ResetUpdateTime();
 
     return needMore;