diff --git a/src/msw/app.cpp b/src/msw/app.cpp index 31c1cd1849..8ba30c66f7 100644 --- a/src/msw/app.cpp +++ b/src/msw/app.cpp @@ -331,6 +331,8 @@ void wxApp::CleanUp(void) if (wxWinHandleList) delete wxWinHandleList ; + // do it as the very last thing because everything else can log messages + delete wxLog::SetActiveTarget(NULL); } void wxApp::CommonInit(void) @@ -816,6 +818,11 @@ void wxApp::OnIdle(wxIdleEvent& event) // 'Garbage' collection of windows deleted with Close(). DeletePendingObjects(); + // flush the logged messages if any + wxLog *pLog = wxLog::GetActiveTarget(); + if ( pLog != NULL && pLog->HasPendingMessages() ) + pLog->Flush(); + // Send OnIdle events to all windows bool needMore = SendIdleEvents();