The card window's ⌘V drops its picture branch — the attachments header now offers one instead
Raw image data on a card window's ⌘V was a keyboard shortcut with no visible trigger; the sidebar's Attachments header now grows a quiet control — beside the existing add affordance, present only while the pasteboard holds a picture this card could take — that pastes it through the exact seam the retired branch used (ClipboardStore.pasteImage(intoCard:in:), the board's "Paste Image into Card" row's own call). The file-URL branch stays on ⌘V; a Finder copy is still unambiguous. CardBodyTextView's paste-yield mechanism needed no change at all — it forwards by capability, not by picture-specific logic, so a screenshot ⌘V with the body editor focused is now a genuine no-op there, served by the new control instead. The pasteboard's re-read gains a fourth checkpoint — a window becoming key — alongside menu-tracking, ⌘-down and app activation: a persistent visible control has to read true continuously while its window is frontmost, not only at the instant a menu or chord probes it. Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
@@ -766,8 +766,9 @@ struct CardFaceView: View, Equatable {
|
||||
/// card I right-clicked, regardless of the live selection") turns out to be what was wanted.
|
||||
///
|
||||
/// **Paste Image into Card is genuinely per-card** — "into card" is the row's own wording, and it
|
||||
/// is `ClipboardStore.pasteImage(intoCard:in:)`, the *same* method the card window's own ⌘V
|
||||
/// already calls for its attachment branch. It always targets **this** card, never the widened
|
||||
/// is `ClipboardStore.pasteImage(intoCard:in:)`, the *same* method the card window's own
|
||||
/// attachments-header affordance calls for its picture (the ⌘V image branch it once rode retired
|
||||
/// 2026-08-09 for that visible control). It always targets **this** card, never the widened
|
||||
/// selection: like Open, Rename and Style's anchor, "single-card by nature" — the existing
|
||||
/// precedent this SCOPE asks new rows to follow for such rows. "… more tbd" is left as the SCOPE
|
||||
/// asks: one row today, the submenu built to grow.
|
||||
|
||||
Reference in New Issue
Block a user