]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/app.cpp
wxProcess-related code now works
[wxWidgets.git] / src / msw / app.cpp
index a3301a60857d6de7b33fa4ad242462f4b2358947..cbf871abdea2d4b3cc73d757ef4750e6d0802ece 100644 (file)
@@ -445,6 +445,15 @@ void wxApp::ConvertToStandardCommandArgs(char* lpCmdLine)
 void wxApp::CleanUp()
 {
   //// COMMON CLEANUP
+
+  // flush the logged messages if any
+  wxLog *pLog = wxLog::GetActiveTarget();
+  if ( pLog != NULL && pLog->HasPendingMessages() )
+    pLog->Flush();
+
+  // One last chance for pending objects to be cleaned up
+  wxTheApp->DeletePendingObjects();
+
   wxModule::CleanUpModules();
 
 #if wxUSE_WX_RESOURCES
@@ -608,6 +617,9 @@ int wxEntry(WXHINSTANCE hInstance,
       {
           retValue = wxTheApp->OnRun();
       }
+      else
+        // We want to initialize, but not run or exit immediately.
+        return 1;
   }
   //else: app initialization failed, so we skipped OnRun()
 
@@ -630,12 +642,6 @@ int wxEntry(WXHINSTANCE hInstance,
 
   wxTheApp->OnExit();
 
-  // flush the logged messages if any
-  wxLog *pLog = wxLog::GetActiveTarget();
-  if ( pLog != NULL && pLog->HasPendingMessages() )
-    pLog->Flush();
-
-
   wxApp::CleanUp();
 
   return retValue;