diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/citra_qt/main.cpp | 15 | ||||
-rw-r--r-- | src/citra_qt/main.h | 2 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index 01841b33c..58de28c1d 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp @@ -266,6 +266,7 @@ void GMainWindow::BootGame(const std::string& filename) { callstackWidget->OnDebugModeEntered(); render_window->show(); + emulation_running = true; OnStartGame(); } @@ -294,6 +295,8 @@ void GMainWindow::ShutdownGame() { ui.action_Pause->setEnabled(false); ui.action_Stop->setEnabled(false); render_window->hide(); + + emulation_running = false; } void GMainWindow::StoreRecentFile(const QString& filename) @@ -423,17 +426,21 @@ void GMainWindow::ToggleWindowMode() { // Render in the main window... render_window->BackupGeometry(); ui.horizontalLayout->addWidget(render_window); - render_window->setVisible(true); render_window->setFocusPolicy(Qt::ClickFocus); - render_window->setFocus(); + if (emulation_running) { + render_window->setVisible(true); + render_window->setFocus(); + } } else { // Render in a separate window... ui.horizontalLayout->removeWidget(render_window); render_window->setParent(nullptr); - render_window->setVisible(true); - render_window->RestoreGeometry(); render_window->setFocusPolicy(Qt::NoFocus); + if (emulation_running) { + render_window->setVisible(true); + render_window->RestoreGeometry(); + } } } diff --git a/src/citra_qt/main.h b/src/citra_qt/main.h index 32523fded..e99501cab 100644 --- a/src/citra_qt/main.h +++ b/src/citra_qt/main.h @@ -102,6 +102,8 @@ private: GRenderWindow* render_window; + // Whether emulation is currently running in Citra. + bool emulation_running = false; std::unique_ptr<EmuThread> emu_thread; ProfilerWidget* profilerWidget; |