]> git.saurik.com Git - wxWidgets.git/commitdiff
prevent all our windows from being destroyed in wxApp::OnEndSession(), otherwise...
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 23 Apr 2008 21:50:11 +0000 (21:50 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 23 Apr 2008 21:50:11 +0000 (21:50 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/app.cpp

index 95d953241ce2c6b1671a5f9a278f4be32a480638..84a236021457839099766332117320e4408cf04f 100644 (file)
@@ -599,8 +599,15 @@ void wxApp::WakeUpIdle()
 void wxApp::OnEndSession(wxCloseEvent& WXUNUSED(event))
 {
     // Windows will terminate the process soon after we return from
-    // WM_ENDSESSION handler anyhow, so make sure we at least execute our
-    // cleanup code before
+    // WM_ENDSESSION handler or when we delete our last window, so make sure we
+    // at least execute our cleanup code before
+
+    // prevent the window from being destroyed when the corresponding wxTLW is
+    // destroyed: this will result in a leak of a HWND, of course, but who
+    // cares when the process is being killed anyhow
+    if ( !wxTopLevelWindows.empty() )
+        wxTopLevelWindows[0]->SetHWND(0);
+
     const int rc = OnExit();
 
     wxEntryCleanup();