FullscreenUI: Fix unpausing when closing achievement list

This commit is contained in:
Connor McLaughlin 2021-06-21 12:15:31 +10:00
parent 19dcd07f87
commit 2ab38aa47c

View file

@ -272,17 +272,23 @@ void SystemPaused(bool paused)
// //
} }
static void PauseForMenuOpen()
{
s_was_paused_on_quick_menu_open = System::IsPaused();
if (s_settings_copy.pause_on_menu && !s_was_paused_on_quick_menu_open)
s_host_interface->RunLater([]() { s_host_interface->PauseSystem(true); });
s_quick_menu_was_open = true;
}
void OpenQuickMenu() void OpenQuickMenu()
{ {
if (!System::IsValid() || s_current_main_window != MainWindowType::None) if (!System::IsValid() || s_current_main_window != MainWindowType::None)
return; return;
s_was_paused_on_quick_menu_open = System::IsPaused(); PauseForMenuOpen();
if (s_settings_copy.pause_on_menu && !s_was_paused_on_quick_menu_open)
s_host_interface->RunLater([]() { s_host_interface->PauseSystem(true); });
s_current_main_window = MainWindowType::QuickMenu; s_current_main_window = MainWindowType::QuickMenu;
s_quick_menu_was_open = true;
ClearImGuiFocus(); ClearImGuiFocus();
} }
@ -307,8 +313,10 @@ bool OpenAchievementsWindow()
if (!achievements_enabled) if (!achievements_enabled)
return false; return false;
if (!s_quick_menu_was_open)
PauseForMenuOpen();
s_current_main_window = MainWindowType::Achievements; s_current_main_window = MainWindowType::Achievements;
s_quick_menu_was_open = false;
return true; return true;
} }
@ -318,9 +326,11 @@ bool OpenLeaderboardsWindow()
if (!leaderboards_enabled) if (!leaderboards_enabled)
return false; return false;
if (!s_quick_menu_was_open)
PauseForMenuOpen();
s_current_main_window = MainWindowType::Leaderboards; s_current_main_window = MainWindowType::Leaderboards;
s_open_leaderboard_id.reset(); s_open_leaderboard_id.reset();
s_quick_menu_was_open = false;
return true; return true;
} }