From 1fca8ae6bf0186b18914e1c93436e08aaa0b30ec Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sun, 23 Mar 2025 17:02:49 +1000 Subject: [PATCH] FullscreenUI: Fix start-in-game-list mode using grid --- src/core/fullscreen_ui.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/core/fullscreen_ui.cpp b/src/core/fullscreen_ui.cpp index 6db9a8744..87f21c77b 100644 --- a/src/core/fullscreen_ui.cpp +++ b/src/core/fullscreen_ui.cpp @@ -1120,9 +1120,12 @@ void FullscreenUI::ReturnToPreviousWindow() void FullscreenUI::ReturnToMainWindow() { ClosePauseMenu(); - s_state.current_main_window = GPUThread::HasGPUBackend() ? - MainWindowType::None : - (ShouldOpenToGameList() ? MainWindowType::GameList : MainWindowType::Landing); + if (GPUThread::HasGPUBackend()) + s_state.current_main_window = MainWindowType::None; + else if (ShouldOpenToGameList()) + SwitchToGameList(); + else + s_state.current_main_window = MainWindowType::Landing; UpdateRunIdleState(); FixStateIfPaused(); } @@ -3377,6 +3380,12 @@ void FullscreenUI::SwitchToSettings() PopulateGraphicsAdapterList(); PopulatePostProcessingChain(GetEditingSettingsInterface(), PostProcessing::Config::DISPLAY_CHAIN_SECTION); + if (!IsEditingGameSettings(GetEditingSettingsInterface())) + { + auto lock = Host::GetSettingsLock(); + PopulateGameListDirectoryCache(Host::Internal::GetBaseSettingsLayer()); + } + s_state.current_main_window = MainWindowType::Settings; s_state.settings_page = SettingsPage::Interface; s_state.settings_last_bg_alpha = GetBackgroundAlpha(); @@ -8317,10 +8326,6 @@ void FullscreenUI::SwitchToGameList() } s_state.icon_image_map.clear(); - { - auto lock = Host::GetSettingsLock(); - PopulateGameListDirectoryCache(Host::Internal::GetBaseSettingsLayer()); - } QueueResetFocus(FocusResetType::ViewChanged); }