Problem
The floating detail panel has two close controls:
- Native macOS close button (red traffic-light): Added by
.closable in the NSPanel style mask (Sources/Spook/App/AppDelegate.swift, DetailPanel.init(), line ~164).
- Custom SwiftUI close button (
xmark.circle.fill): Rendered in the DetailPanelContentView header (line ~225).
Both buttons close the panel. The native close button appears in the transparent titlebar area above the custom SwiftUI header, creating a confusing and visually cluttered experience that is inconsistent with the panel's custom HUD-style design.
Fix
Remove .closable from the NSPanel style mask:
// Before (AppDelegate.swift ~line 164):
styleMask: [.titled, .closable, .fullSizeContentView, .nonactivatingPanel],
// After:
styleMask: [.titled, .fullSizeContentView, .nonactivatingPanel],
The custom xmark.circle.fill button in DetailPanelContentView is the intended close control and must remain unchanged.
Acceptance Criteria
Relevant File
Sources/Spook/App/AppDelegate.swift, DetailPanel.init() — the styleMask parameter on line ~164.
Problem
The floating detail panel has two close controls:
.closablein theNSPanelstyle mask (Sources/Spook/App/AppDelegate.swift,DetailPanel.init(), line ~164).xmark.circle.fill): Rendered in theDetailPanelContentViewheader (line ~225).Both buttons close the panel. The native close button appears in the transparent titlebar area above the custom SwiftUI header, creating a confusing and visually cluttered experience that is inconsistent with the panel's custom HUD-style design.
Fix
Remove
.closablefrom theNSPanelstyle mask:The custom
xmark.circle.fillbutton inDetailPanelContentViewis the intended close control and must remain unchanged.Acceptance Criteria
xmark.circle.fill) in the panel header still closes the panel correctly.isMovableByWindowBackground = true).Relevant File
Sources/Spook/App/AppDelegate.swift,DetailPanel.init()— thestyleMaskparameter on line ~164.