From f7ed87e97f3ada297e0eb201b3be19510e977232 Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Thu, 11 Jun 2026 13:26:48 +0200 Subject: [PATCH] fix(apple/tvOS): opaque material backdrop behind the full-screen covers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit tvOS forms/lists have CLEAR backgrounds and a fullScreenCover only shows what the presented view paints, so Settings/Add Host/pairing rendered transparently over the hosts grid. All three covers now sit on .thickMaterial edge to edge — the standard tvOS blur-over-content panel look (verified in the Apple TV simulator). Co-Authored-By: Claude Fable 5 --- clients/apple/Sources/PunktfunkClient/ContentView.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/clients/apple/Sources/PunktfunkClient/ContentView.swift b/clients/apple/Sources/PunktfunkClient/ContentView.swift index cbc305f..13ae2fa 100644 --- a/clients/apple/Sources/PunktfunkClient/ContentView.swift +++ b/clients/apple/Sources/PunktfunkClient/ContentView.swift @@ -64,6 +64,7 @@ struct ContentView: View { pinned.pinnedSHA256 = fingerprint connect(pinned) } + .background(.thickMaterial, ignoresSafeAreaEdges: .all) } #else .sheet(item: $pairingTarget) { host in @@ -165,11 +166,15 @@ struct ContentView: View { .frame(minWidth: 480, minHeight: 360) #endif #if os(tvOS) + // tvOS forms/lists have CLEAR backgrounds and a cover only shows what the + // presented view paints — back them with the standard tv blur-over-content. .fullScreenCover(isPresented: $showAddHost) { AddHostSheet { store.add($0) } + .background(.thickMaterial, ignoresSafeAreaEdges: .all) } .fullScreenCover(isPresented: $showSettings) { SettingsView() + .background(.thickMaterial, ignoresSafeAreaEdges: .all) } #else .sheet(isPresented: $showAddHost) {