Files
Aleksey Shelementev 1e631ac62e fix(vscode): bridge clipboard and forward keystrokes in webview (#970)
The Plannotator app runs in a nested cross-origin iframe inside the VS Code
webview, where two input paths break:

- Clipboard: the iframe document never holds focus, so the async Clipboard
  API is rejected ("Document is not focused") and native copy/cut/paste
  events never fire. Copy, cut, and paste all silently fail.
- Keybindings: keydown events don't cross the iframe boundary, so VS Code
  never sees global shortcuts (Cmd+P, etc.) while a Plannotator tab is focused.

Fix both off the one input signal the iframe still receives — keydown:

- Route clipboard reads/writes through the extension host, which owns the
  system clipboard via vscode.env.clipboard. The injected script overrides
  navigator.clipboard and handles Cmd+C/X/V, relaying through the wrapper to
  an onDidReceiveMessage handler and back.
- Forward all other keystrokes to the wrapper, which re-dispatches a synthetic
  KeyboardEvent on the webview document so VS Code can resolve its keybindings.
  Undo/redo/select-all stay native.

Fixes #864
Fixes #969

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 12:54:19 -07:00
..