diff --git a/Source/Core/DolphinWX/FrameTools.cpp b/Source/Core/DolphinWX/FrameTools.cpp index 0ea5685a17..b3689e9ab5 100644 --- a/Source/Core/DolphinWX/FrameTools.cpp +++ b/Source/Core/DolphinWX/FrameTools.cpp @@ -1132,10 +1132,17 @@ void CFrame::DoStop() // Pause the state during confirmation and restore it afterwards Core::EState state = Core::GetState(); + // Do not pause if netplay is running as CPU thread might be blocked + // waiting on inputs + bool should_pause = !NetPlayDialog::GetNetPlayClient(); + // If exclusive fullscreen is not enabled then we can pause the emulation // before we've exited fullscreen. If not then we need to exit fullscreen first. - if (!RendererIsFullscreen() || !g_Config.ExclusiveFullscreenEnabled() || - SConfig::GetInstance().bRenderToMain) + should_pause = + should_pause && (!RendererIsFullscreen() || !g_Config.ExclusiveFullscreenEnabled() || + SConfig::GetInstance().bRenderToMain); + + if (should_pause) { Core::SetState(Core::CORE_PAUSE); } @@ -1149,7 +1156,9 @@ void CFrame::DoStop() HotkeyManagerEmu::Enable(true); if (Ret != wxID_YES) { - Core::SetState(state); + if (should_pause) + Core::SetState(state); + m_confirmStop = false; return; }