fix: use native close-only window decorations for notes

This commit is contained in:
2026-10-19 17:40:41 +02:00
parent adac0723a1
commit 2e4a791f29
5 changed files with 77 additions and 22 deletions
+2 -22
View File
@@ -45,21 +45,6 @@ final class NotesController: NSViewController, NSTextViewDelegate {
let content = NotesView()
content.commandShortcut = { [weak self] in self?.handleCommandKey($0) ?? false }
view = content
let close = iconButton("circle.fill", label: "Close notes", action: #selector(closeWindow))
close.contentTintColor = SunsetPalette.accent
close.isBordered = false
close.image = close.image?.withSymbolConfiguration(.init(paletteColors: [SunsetPalette.accent]))
let lights = NSStackView(views: [close])
lights.spacing = 8
for _ in 0..<2 {
let dot = NSView()
dot.wantsLayer = true
dot.layer?.backgroundColor = SunsetPalette.secondaryText.withAlphaComponent(0.18).cgColor
dot.layer?.cornerRadius = 6
dot.setAccessibilityElement(false)
NSLayoutConstraint.activate([dot.widthAnchor.constraint(equalToConstant: 12), dot.heightAnchor.constraint(equalToConstant: 12)])
lights.addArrangedSubview(dot)
}
browseButton.target = self
browseButton.action = #selector(browseNotes)
configureIcon(browseButton, symbol: "note.text", label: "Browse notes (⌘P)")
@@ -76,16 +61,15 @@ final class NotesController: NSViewController, NSTextViewDelegate {
noteTitle.lineBreakMode = .byTruncatingTail
noteTitle.setAccessibilityLabel("Note title")
let header = NSView()
for control in [lights, noteTitle, controls] {
for control in [noteTitle, controls] {
control.translatesAutoresizingMaskIntoConstraints = false
header.addSubview(control)
control.centerYAnchor.constraint(equalTo: header.centerYAnchor).isActive = true
}
NSLayoutConstraint.activate([
lights.leadingAnchor.constraint(equalTo: header.leadingAnchor, constant: 10),
controls.trailingAnchor.constraint(equalTo: header.trailingAnchor, constant: -8),
noteTitle.centerXAnchor.constraint(equalTo: header.centerXAnchor),
noteTitle.leadingAnchor.constraint(greaterThanOrEqualTo: lights.trailingAnchor, constant: 16),
noteTitle.leadingAnchor.constraint(greaterThanOrEqualTo: header.leadingAnchor, constant: 44),
noteTitle.trailingAnchor.constraint(lessThanOrEqualTo: controls.leadingAnchor, constant: -16),
])
actions.closed = { [weak self] in self?.focusEditor() }
@@ -202,10 +186,6 @@ final class NotesController: NSViewController, NSTextViewDelegate {
return button
}
@objc private func closeWindow() {
guard save() else { return }
view.window?.performClose(nil)
}
@objc private func toggleFormatting(_ sender: NSButton) {
formatting.isHidden.toggle()