From c3bf6c783552e917f3db80e6e4325a9c00db0ab0 Mon Sep 17 00:00:00 2001 From: TheAchiever6823 Date: Thu, 10 Sep 2026 02:48:42 -0700 Subject: [PATCH] Size the pager backdrop to the full-bleed page height MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The shared PagerBackdrop was sized from the GeometryReader's height, which is measured inside the safe area — but the pages it sits behind tile the full-bleed viewport (the ScrollView ignores the safe area). The backdrop came up one safe-area short over three pages and was centered behind the content, leaving ~half-an-inset dark band at the status bar and home indicator on Now Playing. Add both insets back to the measured height so the backdrop covers the pages exactly. --- App/Continuity/Views/MainPagerView.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/App/Continuity/Views/MainPagerView.swift b/App/Continuity/Views/MainPagerView.swift index bc1ea43..944ad41 100644 --- a/App/Continuity/Views/MainPagerView.swift +++ b/App/Continuity/Views/MainPagerView.swift @@ -15,7 +15,12 @@ struct MainPagerView: View { // insets are re-applied per page below. GeometryReader { proxy in let insets = proxy.safeAreaInsets - let pageHeight = proxy.size.height + // The GeometryReader sits INSIDE the safe area, but the pages tile the full-bleed + // viewport (the ScrollView ignores the safe area) — so the true page height is the + // measured height plus both insets. Using proxy.size.height alone leaves the shared + // backdrop half-an-inset short at each end of every page (dark bands at the status + // bar and home indicator on Now Playing). + let pageHeight = proxy.size.height + insets.top + insets.bottom ScrollView(.vertical) { // Every page gets HARD insets (the pager hides the window safe area, and // neither NavigationStack bars nor safe-area piercing behave inside scroll