From 083dd781f5caaffdd013157bfda4c2326160ab07 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 18 Jul 2026 17:20:33 +0000 Subject: [PATCH] Fix Now Playing layout shift from the unconstrained backdrop image The cached-backdrop rewrite dropped the GeometryReader that used to pin the artwork's frame; a bare scaledToFill Image reports its own scaled size, inflating the backdrop ZStack past the screen and shoving the page's centered content sideways. Contain the image in a Color.clear overlay so it fills without ever influencing layout. --- App/Continuity/Views/Theme.swift | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/App/Continuity/Views/Theme.swift b/App/Continuity/Views/Theme.swift index 7013dd8..bc2d10a 100644 --- a/App/Continuity/Views/Theme.swift +++ b/App/Continuity/Views/Theme.swift @@ -53,10 +53,17 @@ struct AlbumBackdrop: View { ZStack { Theme.gradient(seed: seed) if let backdrop { - Image(uiImage: backdrop) - .resizable() - .interpolation(.high) - .scaledToFill() + // Color.clear takes exactly the proposed size; the scaledToFill image lives in + // an overlay so its overflow can never widen this view's layout — an + // unconstrained fill image inflates the ZStack past the screen and shoves the + // page's centered content sideways. + Color.clear + .overlay( + Image(uiImage: backdrop) + .resizable() + .interpolation(.high) + .scaledToFill() + ) .transition(.opacity) } }