diff --git a/Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp b/Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp index 721a960f71..5dfd10b547 100644 --- a/Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp +++ b/Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp @@ -59,10 +59,18 @@ FIFOPlayerWindow::FIFOPlayerWindow(FifoPlayer& fifo_player, FifoRecorder& fifo_r }); connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) { + // We don't want to trigger OnEmulationStarted when going from Paused to Running, + // and nothing in UpdateControls treats Paused and Running differently + if (state == Core::State::Paused) + state = Core::State::Running; + + // Skip redundant updates if (state == m_emu_state) return; - if (state == Core::State::Running && m_emu_state != Core::State::Paused) + UpdateControls(); + + if (state == Core::State::Running) OnEmulationStarted(); else if (state == Core::State::Uninitialized) OnEmulationStopped(); @@ -266,8 +274,6 @@ void FIFOPlayerWindow::StopRecording() void FIFOPlayerWindow::OnEmulationStarted() { - UpdateControls(); - if (m_fifo_player.GetFile()) OnFIFOLoaded(); } @@ -278,7 +284,6 @@ void FIFOPlayerWindow::OnEmulationStopped() if (m_fifo_recorder.IsRecording()) StopRecording(); - UpdateControls(); // When emulation stops, switch away from the analyzer tab, as it no longer shows anything useful m_tab_widget->setCurrentWidget(m_main_widget); m_analyzer->Update();