FullscreenUI: Fix load/save state leaving system paused

pull/3732/head
Stenzek 2 months ago
parent d2e770131d
commit d1f5975888
No known key found for this signature in database

@ -378,12 +378,12 @@ void FullscreenUI::FixStateIfPaused()
ImGui::UpdateInputEvents(false);
}
void FullscreenUI::ClosePauseMenu()
void FullscreenUI::ClosePauseMenu(float transition_time /*= SHORT_TRANSITION_TIME*/)
{
if (!VideoThread::HasGPUBackend())
return;
BeginTransition(SHORT_TRANSITION_TIME, []() {
BeginTransition(transition_time, []() {
s_locals.current_pause_submenu = PauseSubMenu::None;
s_locals.pause_menu_was_open = false;
SwitchToMainWindow(MainWindowType::None);
@ -858,7 +858,7 @@ void FullscreenUI::RequestRestart()
if (result)
{
Host::RunOnCoreThread(System::ResetSystem);
BeginTransition(LONG_TRANSITION_TIME, &ClosePauseMenuImmediately);
ClosePauseMenu(LONG_TRANSITION_TIME);
}
else
{
@ -1996,7 +1996,7 @@ void FullscreenUI::DrawSaveStateSelector()
const bool global = entry.global;
const bool is_undo = entry.state_path.empty();
ClearSaveStateEntryList(); // entry no longer valid
ReturnToMainWindow(LONG_TRANSITION_TIME);
ClosePauseMenu(LONG_TRANSITION_TIME);
// Loading undo state?
if (is_undo)
@ -2014,7 +2014,7 @@ void FullscreenUI::DrawSaveStateSelector()
const s32 slot = entry.slot;
const bool global = entry.global;
ClearSaveStateEntryList(); // entry no longer valid
ReturnToMainWindow(LONG_TRANSITION_TIME);
ClosePauseMenu(LONG_TRANSITION_TIME);
Host::RunOnCoreThread([slot, global]() { System::SaveStateToSlot(global, slot); });
};

@ -64,7 +64,7 @@ bool AreAnyDialogsOpen();
bool AreAnyDialogsInteractable();
void PauseForMenuOpen(bool was_paused, bool set_pause_menu_open);
void ClosePauseMenu();
void ClosePauseMenu(float transition_time = SHORT_TRANSITION_TIME);
void ClosePauseMenuImmediately();
void ExitFullscreenAndOpenURL(std::string_view url);

Loading…
Cancel
Save