From 0ae51f47d9240d065f7353f9c70cacefe5101c87 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Mon, 25 Jun 2018 10:24:10 -0700 Subject: [PATCH] Qt: Fix loading game when game is loaded --- src/platform/qt/Window.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/platform/qt/Window.cpp b/src/platform/qt/Window.cpp index a7be7d1e7..6d32fb881 100644 --- a/src/platform/qt/Window.cpp +++ b/src/platform/qt/Window.cpp @@ -737,6 +737,7 @@ void Window::gameStarted() { } void Window::gameStopped() { + m_controller.reset(); #ifdef M_CORE_GBA for (QAction* action : m_gbaActions) { action->setDisabled(false); @@ -1807,17 +1808,19 @@ void Window::setController(CoreController* controller, const QString& fname) { if (!controller) { return; } + + if (m_controller) { + m_controller->stop(); + QTimer::singleShot(0, this, [this, controller, fname]() { + setController(controller, fname); + }); + return; + } if (!fname.isEmpty()) { setWindowFilePath(fname); appendMRU(fname); } - if (m_controller) { - m_controller->disconnect(this); - m_controller->stop(); - m_controller.reset(); - } - m_controller = std::shared_ptr(controller); m_inputController.recalibrateAxes(); m_controller->setInputController(&m_inputController);