summaryrefslogtreecommitdiff
path: root/src/citra_qt/main.cpp
diff options
context:
space:
mode:
authorGravatar LittleWhite2015-09-05 12:29:44 +0200
committerGravatar LittleWhite2015-09-07 20:34:39 +0200
commit86e29ac2814be7789370c021eb858558557a7362 (patch)
treeed0855e6e962d979d06e00ee007a26e6c8a7c233 /src/citra_qt/main.cpp
parentMerge pull request #1117 from yuriks/fix-glad-build (diff)
downloadyuzu-86e29ac2814be7789370c021eb858558557a7362.tar.gz
yuzu-86e29ac2814be7789370c021eb858558557a7362.tar.xz
yuzu-86e29ac2814be7789370c021eb858558557a7362.zip
Stop emulation when render window is closed
Diffstat (limited to 'src/citra_qt/main.cpp')
-rw-r--r--src/citra_qt/main.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp
index 11813a2a8..8dadb44ef 100644
--- a/src/citra_qt/main.cpp
+++ b/src/citra_qt/main.cpp
@@ -251,6 +251,7 @@ void GMainWindow::BootGame(const std::string& filename) {
251 render_window->moveContext(); 251 render_window->moveContext();
252 emu_thread->start(); 252 emu_thread->start();
253 253
254 connect(render_window, SIGNAL(Closed()), this, SLOT(OnStopGame()));
254 // BlockingQueuedConnection is important here, it makes sure we've finished refreshing our views before the CPU continues 255 // BlockingQueuedConnection is important here, it makes sure we've finished refreshing our views before the CPU continues
255 connect(emu_thread.get(), SIGNAL(DebugModeEntered()), disasmWidget, SLOT(OnDebugModeEntered()), Qt::BlockingQueuedConnection); 256 connect(emu_thread.get(), SIGNAL(DebugModeEntered()), disasmWidget, SLOT(OnDebugModeEntered()), Qt::BlockingQueuedConnection);
256 connect(emu_thread.get(), SIGNAL(DebugModeEntered()), registersWidget, SLOT(OnDebugModeEntered()), Qt::BlockingQueuedConnection); 257 connect(emu_thread.get(), SIGNAL(DebugModeEntered()), registersWidget, SLOT(OnDebugModeEntered()), Qt::BlockingQueuedConnection);
@@ -283,6 +284,9 @@ void GMainWindow::ShutdownGame() {
283 emu_thread->wait(); 284 emu_thread->wait();
284 emu_thread = nullptr; 285 emu_thread = nullptr;
285 286
287 // The emulation is stopped, so closing the window or not does not matter anymore
288 disconnect(render_window, SIGNAL(Closed()), this, SLOT(OnStopGame()));
289
286 // Update the GUI 290 // Update the GUI
287 ui.action_Start->setEnabled(false); 291 ui.action_Start->setEnabled(false);
288 ui.action_Start->setText(tr("Start")); 292 ui.action_Start->setText(tr("Start"));