Stop emulation when render window is closed
This commit is contained in:
parent
f5a49df679
commit
86e29ac281
3 changed files with 15 additions and 0 deletions
|
@ -251,6 +251,7 @@ void GMainWindow::BootGame(const std::string& filename) {
|
|||
render_window->moveContext();
|
||||
emu_thread->start();
|
||||
|
||||
connect(render_window, SIGNAL(Closed()), this, SLOT(OnStopGame()));
|
||||
// BlockingQueuedConnection is important here, it makes sure we've finished refreshing our views before the CPU continues
|
||||
connect(emu_thread.get(), SIGNAL(DebugModeEntered()), disasmWidget, SLOT(OnDebugModeEntered()), Qt::BlockingQueuedConnection);
|
||||
connect(emu_thread.get(), SIGNAL(DebugModeEntered()), registersWidget, SLOT(OnDebugModeEntered()), Qt::BlockingQueuedConnection);
|
||||
|
@ -283,6 +284,9 @@ void GMainWindow::ShutdownGame() {
|
|||
emu_thread->wait();
|
||||
emu_thread = nullptr;
|
||||
|
||||
// The emulation is stopped, so closing the window or not does not matter anymore
|
||||
disconnect(render_window, SIGNAL(Closed()), this, SLOT(OnStopGame()));
|
||||
|
||||
// Update the GUI
|
||||
ui.action_Start->setEnabled(false);
|
||||
ui.action_Start->setText(tr("Start"));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue