aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/qt_sdl
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/qt_sdl')
-rw-r--r--src/frontend/qt_sdl/EmuSettingsDialog.cpp5
-rw-r--r--src/frontend/qt_sdl/EmuSettingsDialog.h2
-rw-r--r--src/frontend/qt_sdl/main.cpp7
3 files changed, 13 insertions, 1 deletions
diff --git a/src/frontend/qt_sdl/EmuSettingsDialog.cpp b/src/frontend/qt_sdl/EmuSettingsDialog.cpp
index 9ee7b9a..77301b7 100644
--- a/src/frontend/qt_sdl/EmuSettingsDialog.cpp
+++ b/src/frontend/qt_sdl/EmuSettingsDialog.cpp
@@ -34,6 +34,7 @@ EmuSettingsDialog* EmuSettingsDialog::currentDlg = nullptr;
extern char* EmuDirectory;
extern bool RunningSomething;
+bool EmuSettingsDialog::needsReset = false;
EmuSettingsDialog::EmuSettingsDialog(QWidget* parent) : QDialog(parent), ui(new Ui::EmuSettingsDialog)
{
@@ -121,6 +122,8 @@ void EmuSettingsDialog::verifyFirmware()
void EmuSettingsDialog::done(int r)
{
+ needsReset = false;
+
if (r == QDialog::Accepted)
{
verifyFirmware();
@@ -186,6 +189,8 @@ void EmuSettingsDialog::done(int r)
Config::DirectBoot = directBoot;
Config::Save();
+
+ needsReset = true;
}
}
diff --git a/src/frontend/qt_sdl/EmuSettingsDialog.h b/src/frontend/qt_sdl/EmuSettingsDialog.h
index 268036c..c24a147 100644
--- a/src/frontend/qt_sdl/EmuSettingsDialog.h
+++ b/src/frontend/qt_sdl/EmuSettingsDialog.h
@@ -50,6 +50,8 @@ public:
currentDlg = nullptr;
}
+ static bool needsReset;
+
private slots:
void done(int r);
diff --git a/src/frontend/qt_sdl/main.cpp b/src/frontend/qt_sdl/main.cpp
index 4557d0e..de6887c 100644
--- a/src/frontend/qt_sdl/main.cpp
+++ b/src/frontend/qt_sdl/main.cpp
@@ -1641,14 +1641,19 @@ void MainWindow::onStop()
void MainWindow::onOpenEmuSettings()
{
+ emuThread->emuPause();
+
EmuSettingsDialog* dlg = EmuSettingsDialog::openDlg(this);
connect(dlg, &EmuSettingsDialog::finished, this, &MainWindow::onEmuSettingsDialogFinished);
}
void MainWindow::onEmuSettingsDialogFinished(int res)
{
- if (RunningSomething)
+ if (EmuSettingsDialog::needsReset)
+ {
+ emuThread->emuUnpause();
onReset();
+ }
}
void MainWindow::onOpenInputConfig()