FullscreenUI: Fix pause icon not re-displaying on menu close

pull/3744/head
Stenzek 2 months ago
parent aa5e2d738c
commit 614d24c4d0
No known key found for this signature in database

@ -201,9 +201,14 @@ bool FullscreenUI::IsInitialized()
}
bool FullscreenUI::HasActiveWindow()
{
return s_locals.initialized && (s_locals.current_main_window != MainWindowType::None || AreAnyDialogsOpen());
}
bool FullscreenUI::HasActiveOrPendingWindow()
{
return s_locals.initialized && (s_locals.current_main_window != MainWindowType::None ||
GetTransitionState() != TransitionState::Inactive || AreAnyDialogsOpen());
s_locals.has_pending_window_switch || AreAnyDialogsOpen());
}
bool FullscreenUI::AreAnyDialogsOpen()
@ -223,7 +228,8 @@ void FullscreenUI::CheckForConfigChanges(const GPUSettings& old_settings)
void FullscreenUI::UpdateRunIdleState()
{
VideoThread::SetRunIdleReason(VideoThread::RunIdleReason::FullscreenUIActive, HasActiveWindow());
VideoThread::SetRunIdleReason(VideoThread::RunIdleReason::FullscreenUIActive,
(HasActiveWindow() || GetTransitionState() != TransitionState::Inactive));
}
void FullscreenUI::OnSystemStarting()

@ -23,6 +23,7 @@ namespace FullscreenUI {
void Initialize();
bool IsInitialized();
bool HasActiveWindow();
bool HasActiveOrPendingWindow();
void CheckForConfigChanges(const GPUSettings& old_settings);
void OnSystemStarting();
void OnSystemPaused();

@ -236,8 +236,8 @@ void ImGuiManager::DestroyAllDebugWindows()
void ImGuiManager::RenderTextOverlays(const GPUBackend* gpu)
{
// Don't draw anything with loading screen open, it'll be nonsensical.
if (FullscreenUI::IsLoadingScreenOpen())
// Don't draw anything with loading screen or FSUI open, it'll be nonsensical.
if (FullscreenUI::IsLoadingScreenOpen() || FullscreenUI::HasActiveOrPendingWindow())
return;
const bool paused = VideoThread::IsSystemPaused();
@ -549,7 +549,7 @@ void ImGuiManager::DrawPerformanceOverlay(const GPUBackend* gpu, float& position
DrawPerformanceStat(dl, position_y, ui_font, status_size, 0.0f, 0, rbound, text);
}
}
else if (g_gpu_settings.display_show_status_indicators && !FullscreenUI::HasActiveWindow())
else if (g_gpu_settings.display_show_status_indicators)
{
SetStatusIndicatorIcons(text, true);
DrawPerformanceStat(dl, position_y, ui_font, status_size, 0.0f, 0, rbound, text);
@ -646,7 +646,7 @@ void ImGuiManager::DrawMediaCaptureOverlay(float& position_y, float scale, float
{
#ifndef __ANDROID__
MediaCapture* const cap = System::GetMediaCapture();
if (!cap || FullscreenUI::HasActiveWindow())
if (!cap)
return;
const float shadow_offset = std::ceil(scale);

Loading…
Cancel
Save