From 9531637f3bdcfd177e7ad382345d26b94333d140 Mon Sep 17 00:00:00 2001 From: DatScreamer Date: Sat, 15 Aug 2026 21:19:29 -0600 Subject: [PATCH] ui: fix stale dashboard blur after navigation --- .../Litter/Views/HomeSessionsScrollView.swift | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/ios/Sources/Litter/Views/HomeSessionsScrollView.swift b/apps/ios/Sources/Litter/Views/HomeSessionsScrollView.swift index 7bfaffc1b..d3f18563f 100644 --- a/apps/ios/Sources/Litter/Views/HomeSessionsScrollView.swift +++ b/apps/ios/Sources/Litter/Views/HomeSessionsScrollView.swift @@ -1542,16 +1542,18 @@ final class HomeRowContainer: UIView { func forceResetPinchBlurIfIdle() { if LitterPlatform.rendersAsMacApp { return } if UIAccessibility.isReduceTransparencyEnabled { return } - // A live fade-out is still scrubbing the animator's - // fractionComplete back to 0 — don't yank the animator out - // from under it. - if fadeLink != nil { return } // If the scroll host says a pinch is active, the animator is // being scrubbed in real time. Leave it alone. if scrollHost?.pinchActive == true { return } + // Navigation can leave the fade display link alive even though + // no pinch is active. Treat that as stale transition state and + // cancel it before removing the stale effect view. The pinch + // path lazily reinstalls the view and animator when needed. + fadeLink?.invalidate() + fadeLink = nil tearDownPinchBlurAnimator() + pinchBlur.removeFromSuperview() pinchBlur.effect = nil - pinchBlurAnimator = makePinchBlurAnimator() } /// Smoothly wind the blur back to zero on pinch release. Uses