Conversation
The clipboard shortcut opens the history in the Dynamic Island when it is on, and that page only listened to the mouse. The arrow keys now move a highlighted selection through the cards, scrolling it into view, and Return pastes it (or the newest entry before any arrow), as the quick panel already did. The search field keeps the focus, so typing still filters and a new filter starts the selection over. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
| } | ||
| } | ||
| .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top) | ||
| .onChange(of: service.clipboardKeyPress) { _, press in |
There was a problem hiding this comment.
this view keeps service as a plain let, so this onchange only sees a new clipboardkeypress when the body runs for another reason. today that reason is the @appstorage above, which gives every rebuild of the page a new storage object that swiftui never finds equal to the old one. nothing ties the keys to that, and if enabled ever leaves this view the monitor still swallows the arrows and return with no effect, and a swallowed return then pastes on the next redraw, such as the next typed letter. notchscratchpadview reacts to scratchpadcloseserial the same way and holds @observedobject var service, can this view declare it like that too
There was a problem hiding this comment.
Done in e0167df. The page now holds @ObservedObject var service, like NotchScratchpadView.
The page held the island service as a plain `let`, so its reaction to a clipboard key only ran when the body was rebuilt for some other reason. Without such a rebuild the monitor swallowed the arrows and Return with no effect, and a swallowed Return then pasted on the next redraw. The page now observes the service, as the Scratchpad page does for its own serial. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
When the Dynamic Island is on, the clipboard history shortcut opens the island's Clipboard page. That page only responded to the mouse, so the arrow keys did nothing and Return could not paste. The floating quick panel already supported both.
@ObservedObject), as the Scratchpad page does for its close serial, so every key press reaches the page when it is published.Verification
./build.sh --test: all suites passed. The new notch checks cover key mapping, first-key selection, stopping at the ends, and a filtered-out selection../build.sh: bundle built.🤖 Generated with Claude Code