diff --git a/AGENTS.md b/AGENTS.md index 45330f2..7aec921 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -59,7 +59,8 @@ clicking an item copies it back to the clipboard. bar offers Copy (single item), Copy as List, Copy as Lines and Delete; right-click = context menu acting on the whole selection (Copy, Copy as List, Copy as Lines, Done, Edit, Open, Merge, Move To, Delete). Esc clears the - selection before it hides the panel. Drop target for images/files. + selection before it hides the panel. Selection is scoped to the current view: + switching workspace, switching tab, or closing search clears it. Drop target for images/files. - `Sources/Prompt/PanelController.swift` — owns the floating `NSPanel` (`.nonactivatingPanel`, `.floating`, right-edge docked, frame autosaved as `PromptPanel`), and the Cmd+V paste monitor. Editing a note is an in-panel diff --git a/Sources/Prompt/PanelView.swift b/Sources/Prompt/PanelView.swift index 8ec79f0..28d4f99 100644 --- a/Sources/Prompt/PanelView.swift +++ b/Sources/Prompt/PanelView.swift @@ -61,6 +61,11 @@ struct PanelView: View { accessibilityGranted = AXIsProcessTrusted() } .onAppear { composerFocused = true } + // Selection is scoped to the current view: switching workspace, tab, + // or leaving search clears it. Otherwise a selection made in one + // workspace kept acting (copy, delete) on items you can no longer see. + .onChange(of: store.activeSectionID) { clearSelection() } + .onChange(of: tab) { clearSelection() } } // MARK: - Header @@ -144,6 +149,7 @@ struct PanelView: View { search = "" showSearch = false focusedField = nil + clearSelection() composerFocused = true } if !search.isEmpty { @@ -852,6 +858,7 @@ struct PanelView: View { } else { search = "" focusedField = nil + clearSelection() composerFocused = true } }