Der Farbwechsel kommt jetzt auch an
Farbton und Symbolfarbe standen beim **Erzeugen** der Fenster, also außerhalb jeder View. Damit wird der Wert genau einmal gelesen und SwiftUI erfährt nie, dass er sich geändert hat: die Reiter, Knöpfe und Symbole blieben in der Farbe stehen, die beim Öffnen galt, während der Farbwähler daneben schon die neue zeigte. Jetzt stehen beide im Rumpf der jeweiligen View — Panel, Einstellungen, Einrichtung. Dort registriert SwiftUI den Zugriff und zeichnet neu. Bei den Popovers blieb es beim Erzeugen: die entstehen bei jedem Öffnen neu, lesen also ohnehin den aktuellen Wert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -82,6 +82,9 @@ struct OnboardingView: View {
|
|||||||
footer
|
footer
|
||||||
}
|
}
|
||||||
.frame(width: 520, height: 520)
|
.frame(width: 520, height: 520)
|
||||||
|
// Im Rumpf gelesen, damit ein Farbwechsel ankommt.
|
||||||
|
.tint(Onyx.Color.accent)
|
||||||
|
.labelStyle(.onyx)
|
||||||
.task {
|
.task {
|
||||||
calendarGranted = calendarModel.hasAccess
|
calendarGranted = calendarModel.hasAccess
|
||||||
fanControl.refreshInstallState()
|
fanControl.refreshInstallState()
|
||||||
|
|||||||
@@ -44,9 +44,7 @@ final class OnboardingWindowController: NSObject, NSWindowDelegate {
|
|||||||
rootView: OnboardingView(
|
rootView: OnboardingView(
|
||||||
calendarModel: calendarModel, weatherModel: weatherModel,
|
calendarModel: calendarModel, weatherModel: weatherModel,
|
||||||
mixer: mixer, fanControl: fanControl, launchAtLogin: launchAtLogin,
|
mixer: mixer, fanControl: fanControl, launchAtLogin: launchAtLogin,
|
||||||
onFinish: { [weak self] in self?.finish() })
|
onFinish: { [weak self] in self?.finish() }))
|
||||||
.tint(Onyx.Color.accent)
|
|
||||||
.labelStyle(.onyx))
|
|
||||||
|
|
||||||
let window = NSWindow(contentViewController: hosting)
|
let window = NSWindow(contentViewController: hosting)
|
||||||
window.title = "Onyx"
|
window.title = "Onyx"
|
||||||
|
|||||||
@@ -76,9 +76,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate {
|
|||||||
NotchHostingView(
|
NotchHostingView(
|
||||||
rootView: NotchContainer(presentation: presentation) {
|
rootView: NotchContainer(presentation: presentation) {
|
||||||
NotchPanelContent(model: model)
|
NotchPanelContent(model: model)
|
||||||
}
|
},
|
||||||
.tint(Onyx.Color.accent)
|
|
||||||
.labelStyle(.onyx),
|
|
||||||
presentation: presentation)
|
presentation: presentation)
|
||||||
}
|
}
|
||||||
coordinator.start()
|
coordinator.start()
|
||||||
@@ -366,5 +364,8 @@ private struct NotchPanelContent: View {
|
|||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
WidgetGrid(placements: model.layout, availableWidth: AppModel.availableWidth)
|
WidgetGrid(placements: model.layout, availableWidth: AppModel.availableWidth)
|
||||||
|
// Im Rumpf gelesen, damit ein Farbwechsel ankommt.
|
||||||
|
.tint(Onyx.Color.accent)
|
||||||
|
.labelStyle(.onyx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,6 +71,14 @@ struct SettingsView: View {
|
|||||||
// Systems, und die beiden liegen in Dunkelgrau ein, zwei Prozent
|
// Systems, und die beiden liegen in Dunkelgrau ein, zwei Prozent
|
||||||
// auseinander. Sichtbar wurde das als Kante quer durchs Fenster.
|
// auseinander. Sichtbar wurde das als Kante quer durchs Fenster.
|
||||||
.background(Color(nsColor: .windowBackgroundColor))
|
.background(Color(nsColor: .windowBackgroundColor))
|
||||||
|
// Farbton und Symbolfarbe hier und nicht beim Erzeugen des Fensters.
|
||||||
|
//
|
||||||
|
// Beim Erzeugen wird der Wert **einmal** gelesen, außerhalb jeder
|
||||||
|
// View — SwiftUI erfährt nie, dass er sich geändert hat. Die Reiter
|
||||||
|
// und Knöpfe blieben deshalb in der Farbe stehen, die beim Öffnen
|
||||||
|
// galt, während der Farbwähler daneben schon die neue zeigte.
|
||||||
|
.tint(Onyx.Color.accent)
|
||||||
|
.labelStyle(.onyx)
|
||||||
// Nur ein Mindestmaß, keine feste Größe: sonst kann das Fenster
|
// Nur ein Mindestmaß, keine feste Größe: sonst kann das Fenster
|
||||||
// wachsen, der Inhalt aber nicht mit.
|
// wachsen, der Inhalt aber nicht mit.
|
||||||
.frame(minWidth: 740, minHeight: 460)
|
.frame(minWidth: 740, minHeight: 460)
|
||||||
|
|||||||
@@ -61,12 +61,7 @@ final class SettingsWindowController: NSObject, NSWindowDelegate {
|
|||||||
showOnboarding: showOnboarding,
|
showOnboarding: showOnboarding,
|
||||||
selectedTab: Binding(
|
selectedTab: Binding(
|
||||||
get: { [weak self] in self?.selectedTab ?? .widgets },
|
get: { [weak self] in self?.selectedTab ?? .widgets },
|
||||||
set: { [weak self] in self?.selectedTab = $0 }))
|
set: { [weak self] in self?.selectedTab = $0 })))
|
||||||
// Ohne das folgen Haken, Regler und Auswahlfelder der
|
|
||||||
// Systemfarbe statt der eingestellten. Genau daher kam das
|
|
||||||
// Grün, das in Onyx sonst nirgends vorkommt.
|
|
||||||
.tint(Onyx.Color.accent)
|
|
||||||
.labelStyle(.onyx))
|
|
||||||
|
|
||||||
let window = NSWindow(contentViewController: hosting)
|
let window = NSWindow(contentViewController: hosting)
|
||||||
window.title = "Onyx"
|
window.title = "Onyx"
|
||||||
|
|||||||
Reference in New Issue
Block a user