From ade4ae2c51fd5406a8d7bbebc36ccd2c94e48c59 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 22 May 2010 10:51:27 +0000 Subject: [PATCH] Unset the debug report preview dialog as critical window when it's hidden. Otherwise no events can be dispatched to any other window after wxDebugReportPreviewStd::Show() is called, resulting in apparent hanging of the application as can be seen in debugrpt sample. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64379 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/dbgrptg.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/generic/dbgrptg.cpp b/src/generic/dbgrptg.cpp index 015f2de519..ba5c797c24 100644 --- a/src/generic/dbgrptg.cpp +++ b/src/generic/dbgrptg.cpp @@ -46,6 +46,7 @@ #ifdef __WXMSW__ #include "wx/evtloop.h" // for SetCriticalWindow() + #include "wx/scopeguard.h" #endif // __WXMSW__ // ---------------------------------------------------------------------------- @@ -517,6 +518,9 @@ bool wxDebugReportPreviewStd::Show(wxDebugReport& dbgrpt) const // before entering the event loop (from ShowModal()), block the event // handling for all other windows as this could result in more crashes wxEventLoop::SetCriticalWindow(&dlg); + + wxON_BLOCK_EXIT1( wxEventLoop::SetCriticalWindow, + static_cast(NULL) ); #endif // __WXMSW__ return dlg.ShowModal() == wxID_OK && dbgrpt.GetFilesCount() != 0; -- 2.47.2