diff --git a/src/main.cpp b/src/main.cpp index 23596eb..9b7af44 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2359,8 +2359,12 @@ int main(int argc, char* argv[]) const bool backdropNeedsFrames = (backdrop_active || app.getGradientTexture() != 0) && !opaqueBackground; const bool reduceMotion = app.settings() && app.settings()->getReduceMotion(); + // C128: suppress backdrop theme-effect frame requests while a blur overlay (a modal dialog or + // the lock screen) covers them -- they aren't visible, and the overlay's own moving elements + // request frames via RequestProgressFrame(), so this never freezes anything on screen. const bool effectsAnimating = !reduceMotion - && dragonx::ui::effects::ThemeEffects::instance().hasActiveAnimation(); + && dragonx::ui::effects::ThemeEffects::instance().hasActiveAnimation() + && !dragonx::ui::material::AnyBlurOverlayActiveLastFrame(); const bool ambient = effectsAnimating || backdropNeedsFrames || avatarAnimating