Card windows drop the title from the title bar — the body already says it
The card's name renders as part of the card body, so the chrome said it twice. HostedWindowController gains a titleVisibility slot on the same retained-slot pattern as the accessory and toolbar (reapplied at attach, so the macOS 26 provisional-window swap can't lose it); CardWindowHost opts in beside installToolbar, board windows keep AppKit's default. window.title itself is untouched — navigationTitle still feeds the Window menu, Exposé, VoiceOver and restoration. Known consequence, probed empirically: under .hidden AppKit collapses title and subtitle into one hidden field, so the "board › lane" navigationSubtitle disappears with it — and the details sidebar carries no placement rows, so a card window currently shows its home nowhere. Filed on the Redesign board to bless or relocate; 05-card-window.md's subtitle sentence needs reconciling either way. Claude-Session: https://claude.ai/code/session_01CqjXB7ASoWtbyoGod68k97
This commit is contained in:
@@ -851,6 +851,16 @@ struct CardWindowHost: View {
|
||||
CardToolbar.controller(body: bodyPresentation, rawSource: rawSource, attachments: attachments)
|
||||
)
|
||||
|
||||
// **No title in the title bar** — the card's name is shown as part of the card's body
|
||||
// instead (the large-title text at the top of the body column, `bodyColumn`), so the chrome
|
||||
// does not say it twice. `window.title` itself is untouched — `.navigationTitle(windowTitle)`
|
||||
// on this view still sets it every time the card renames or a new card's window opens — so
|
||||
// the Window menu, Mission Control/Exposé, VoiceOver and state restoration all keep naming
|
||||
// this window correctly; only the title *bar's* rendering of that string is suppressed
|
||||
// (`HostedWindowController.hideTitle`). Board windows call no such thing and keep AppKit's
|
||||
// default (`.visible`), which is where their title lives.
|
||||
windowController.hideTitle()
|
||||
|
||||
// **This window's own stack** (13-native-undo.md ▸ Rules ▸ two levels, re-ruled 2026-07-31 —
|
||||
// superseding the shared-stack wiring): "a card window owns its own stack for the session it
|
||||
// represents ... and `window.undoManager` answers with it (standard per-window AppKit
|
||||
|
||||
Reference in New Issue
Block a user