From 57e626b5cb078980ffb74cf4cec01b675bc82066 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 18 Jul 2026 17:32:40 +0000 Subject: [PATCH] Fix library/queue nav bars hidden under the status bar in the pager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The full-bleed pager re-injects insets with safeAreaPadding, which the SwiftUI-native Now Playing page respects — but NavigationStack bars position from the real window safe area the pager now ignores, so the library's title and add-playlist button slid under the status bar. The two NavigationStack pages get hard top/bottom padding instead; Now Playing keeps safeAreaPadding so its backdrop still escapes to full bleed. --- App/Continuity/Views/MainPagerView.swift | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/App/Continuity/Views/MainPagerView.swift b/App/Continuity/Views/MainPagerView.swift index 9ac0ec7..572afbe 100644 --- a/App/Continuity/Views/MainPagerView.swift +++ b/App/Continuity/Views/MainPagerView.swift @@ -16,9 +16,16 @@ struct MainPagerView: View { GeometryReader { proxy in let insets = proxy.safeAreaInsets ScrollView(.vertical) { + // Two inset strategies on purpose: the NavigationStack pages need HARD padding — + // their bars position from the real window safe area, which this full-screen + // pager ignores, so additive safeAreaPadding leaves the title/toolbar under the + // status bar. Now Playing keeps safeAreaPadding: its content is pure SwiftUI + // (chevrons/labels respect it) and its backdrop must escape to full bleed via + // ignoresSafeArea, which hard padding would block. VStack(spacing: 0) { LibrarySheetView() - .safeAreaPadding(insets) + .padding(.top, insets.top) + .padding(.bottom, insets.bottom) .containerRelativeFrame(.vertical) .id(MainPagerState.Page.library) NowPlayingView(mode: .home) @@ -26,7 +33,8 @@ struct MainPagerView: View { .containerRelativeFrame(.vertical) .id(MainPagerState.Page.nowPlaying) UpNextView() - .safeAreaPadding(insets) + .padding(.top, insets.top) + .padding(.bottom, insets.bottom) .containerRelativeFrame(.vertical) .id(MainPagerState.Page.upNext) }