import AppKit /// Wohin ein Fenster von Onyx gehört. /// /// `NSWindow.center()` setzt etwas **oberhalb** der Bildschirmmitte. Bei einem /// nicht sehr hohen Fenster landet der Schließknopf damit knapp unter der /// Menüleiste — wer ihn treffen will, fährt durch die Auslösefläche der Notch /// und hat plötzlich das Panel vor sich. /// /// Das gilt für jedes Fenster, das Onyx aufmacht, nicht nur für die /// Einstellungen. Deshalb steht es hier und nicht in einem der Controller. enum OnyxWindowPlacement { /// Wirklich mittig, nicht „etwas unterhalb der Notch". /// /// Ein erster Versuch mit 60 Punkten Abstand zur Oberkante war zu zaghaft: /// der Titelbalken lag weiter so hoch, dass man auf dem Weg zu seinen /// Knöpfen durch die Auslösefläche fuhr. static func center(_ window: NSWindow) { guard let screen = window.screen ?? NSScreen.main else { window.center(); return } let visible = screen.visibleFrame let size = window.frame.size window.setFrameOrigin(NSPoint(x: visible.midX - size.width / 2, y: visible.midY - size.height / 2)) } }