From ab96086db7aa20440aafcbc3afb1571d27f2f6d1 Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Thu, 13 Aug 2026 13:53:35 +0200 Subject: [PATCH] Reiterleiste liegt nicht mehr auf der Trennlinie MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sie saß genau auf der Kante unter dem Titelbalken. `TabView` in einem gewöhnlichen Fenster bekommt den Abstand nicht von selbst — in Apples `Settings`-Szene schon, und die benutzt Onyx bewusst nicht, weil sie über einen privaten Selektor öffnet und bei Apps ohne Menüleiste unzuverlässig ankommt. Zwölf Punkte Abstand nach oben, und der Titelbalken geht durchsichtig in den Inhalt über, statt ihn mit einer Linie abzuschneiden. Co-Authored-By: Claude Opus 5 --- Onyx/SettingsView.swift | 6 ++++++ Onyx/SettingsWindowController.swift | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/Onyx/SettingsView.swift b/Onyx/SettingsView.swift index 6ae98a8..45fc6fb 100644 --- a/Onyx/SettingsView.swift +++ b/Onyx/SettingsView.swift @@ -46,6 +46,12 @@ struct SettingsView: View { .tabItem { Label("settings.tab.permissions", systemImage: "hand.raised") } .tag(SettingsTab.permissions) } + // Abstand nach oben: ohne ihn sitzt die Reiterleiste genau auf der + // Trennlinie unter dem Titelbalken und sieht aus, als läge sie auf + // einer Kante. `TabView` in einem gewöhnlichen Fenster bekommt diesen + // Abstand nicht von selbst — in Apples `Settings`-Szene schon, und die + // benutzt Onyx bewusst nicht. + .padding(.top, 12) // Nur ein Mindestmaß, keine feste Größe: sonst kann das Fenster // wachsen, der Inhalt aber nicht mit. .frame(minWidth: 740, minHeight: 460) diff --git a/Onyx/SettingsWindowController.swift b/Onyx/SettingsWindowController.swift index 9bc1806..73e2559 100644 --- a/Onyx/SettingsWindowController.swift +++ b/Onyx/SettingsWindowController.swift @@ -57,6 +57,10 @@ final class SettingsWindowController: NSObject, NSWindowDelegate { let window = NSWindow(contentViewController: hosting) window.title = "Onyx" + // Der Titelbalken geht in den Inhalt über, statt ihn mit einer + // Linie abzuschneiden — sonst liegt die Reiterleiste direkt auf + // dieser Linie. + window.titlebarAppearsTransparent = true // Veränderbar, und das ist keine Kür: der Bereich „Displays" mit // der Vorschau der Auslösefläche passt in 420 Punkte Höhe nicht // mehr, und ein Fenster, in dem man scrollen muss, obwohl der