diff --git a/sources/ui/projectpropertiesdialog.cpp b/sources/ui/projectpropertiesdialog.cpp index f393c7ea4..b9bea1c71 100644 --- a/sources/ui/projectpropertiesdialog.cpp +++ b/sources/ui/projectpropertiesdialog.cpp @@ -63,7 +63,13 @@ ProjectPropertiesDialog::~ProjectPropertiesDialog () */ void ProjectPropertiesDialog::exec() { - m_properties_dialog->setWindowModality(Qt::WindowModal); + // ApplicationModal (not WindowModal) so no other window — including other + // MDI subwindows — can dispatch events while the dialog holds raw + // QETProject* pointers in its config pages. WindowModal only blocks the + // parent ProjectView; the rest of the MDI area stays live, which allowed + // new_project / close_project to replace the project under the dialog + // and cause a SIGSEGV. See issue #527. + m_properties_dialog->setWindowModality(Qt::ApplicationModal); m_properties_dialog -> exec(); }