diff --git a/src/duckstation-qt/settingswindow.cpp b/src/duckstation-qt/settingswindow.cpp index 687bd413a..4b71035ec 100644 --- a/src/duckstation-qt/settingswindow.cpp +++ b/src/duckstation-qt/settingswindow.cpp @@ -68,6 +68,13 @@ SettingsWindow::~SettingsWindow() s_open_game_properties_dialogs.removeOne(this); } +void SettingsWindow::closeEvent(QCloseEvent* event) +{ + // we need to clean up ourselves, since we're not modal + if (isPerGameSettings()) + deleteLater(); +} + void SettingsWindow::addPages() { addWidget( diff --git a/src/duckstation-qt/settingswindow.h b/src/duckstation-qt/settingswindow.h index e4d24f5ff..8cb0fa6db 100644 --- a/src/duckstation-qt/settingswindow.h +++ b/src/duckstation-qt/settingswindow.h @@ -98,7 +98,8 @@ private Q_SLOTS: void onRestoreDefaultsClicked(); protected: - void wheelEvent(QWheelEvent* event); + void closeEvent(QCloseEvent* event) override; + void wheelEvent(QWheelEvent* event) override; private: enum : u32