diff --git a/src/generic/dbgrptg.cpp b/src/generic/dbgrptg.cpp index 92a3b55c50..efb75d241b 100644 --- a/src/generic/dbgrptg.cpp +++ b/src/generic/dbgrptg.cpp @@ -43,6 +43,10 @@ #include "wx/filedlg.h" #include "wx/valtext.h" +#ifdef __WXMSW__ + #include "wx/evtloop.h" // for SetCriticalWindow() +#endif // __WXMSW__ + // ---------------------------------------------------------------------------- // wxDumpPreviewDlg: simple class for showing ASCII preview of dump files // ---------------------------------------------------------------------------- @@ -484,6 +488,12 @@ bool wxDebugReportPreviewStd::Show(wxDebugReport& dbgrpt) const wxDebugReportDialog dlg(dbgrpt); +#ifdef __WXMSW__ + // 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); +#endif // __WXMSW__ + return dlg.ShowModal() == wxID_OK && dbgrpt.GetFilesCount() != 0; }