]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/appcmn.cpp
Compare and assign wxChars to wxChar instead char local variable.
[wxWidgets.git] / src / common / appcmn.cpp
index 335d9ec82b70e4aef4131fc7fcd93da6437d85e7..43bd65360c435fb67795c90a7916f45ae2f77108 100644 (file)
@@ -47,7 +47,7 @@
 #include "wx/utils.h"
 #include "wx/ptr_scpd.h"
 
-#if defined(__WXMSW__)
+#if defined(__WXMSW__) && !defined(__PALMOS__)
   #include  "wx/msw/private.h"  // includes windows.h for LOGFONT
 #endif
 
@@ -128,9 +128,19 @@ wxAppBase::~wxAppBase()
 
 void wxAppBase::CleanUp()
 {
-    // one last chance for pending objects to be cleaned up
+    // clean up all the pending objects
     DeletePendingObjects();
 
+    // and any remaining TLWs (they remove themselves from wxTopLevelWindows
+    // when destroyed, so iterate until none are left)
+    while ( !wxTopLevelWindows.empty() )
+    {
+        // do not use Destroy() here as it only puts the TLW in pending list
+        // but we want to delete them now
+        delete wxTopLevelWindows.GetFirst()->GetData();
+    }
+
+    // undo everything we did in Initialize() above
     wxBitmap::CleanUpHandlers();
 
     wxDeleteStockObjects();