Support middle-click paste in text fields #60

Merged
reya merged 1 commits from vbmithr/coop:fix/middle-click-paste into master 2026-10-10 00:28:09 +00:00
Contributor

Selecting an nsec in another Linux application and middle-clicking Coop's identity import field currently does nothing. The shared input widget handles left and right clicks but never reads the primary selection for a middle click.

Add middle-click paste from PRIMARY on Linux and FreeBSD, inserting at the nearest visible caret to the click. Read the selection before changing focus, preserve disabled/read-only inputs, strip line breaks in single-line fields, and use the input state's atomic insertion path so Undo removes the paste. Also register Shift+Insert for standard clipboard paste on non-macOS platforms. The existing right-click editing menu and Ctrl+V/Cmd+V remain available.

Document the gestures in the README. Enable GPUI test support for the UI crate; the lockfile additions are its test dependencies.

Validation:

  • cargo check -p ui --locked
  • cargo test -p ui --lib --locked — all five tests pass, including empty-field paste, Unicode caret placement, primary/clipboard separation, Undo, and disabled/read-only protection
  • git -c core.whitespace=cr-at-eol diff --check (preserves the existing CRLF Cargo manifest)

Validated with GPUI's simulated input and clipboard platform; no live X11/Wayland compositor test was performed.

Release Notes:

  • Fixed middle-click paste in Linux text fields, including identity import, and added Shift+Insert clipboard paste.
Selecting an nsec in another Linux application and middle-clicking Coop's identity import field currently does nothing. The shared input widget handles left and right clicks but never reads the primary selection for a middle click. Add middle-click paste from PRIMARY on Linux and FreeBSD, inserting at the nearest visible caret to the click. Read the selection before changing focus, preserve disabled/read-only inputs, strip line breaks in single-line fields, and use the input state's atomic insertion path so Undo removes the paste. Also register Shift+Insert for standard clipboard paste on non-macOS platforms. The existing right-click editing menu and Ctrl+V/Cmd+V remain available. Document the gestures in the README. Enable GPUI test support for the UI crate; the lockfile additions are its test dependencies. Validation: - `cargo check -p ui --locked` - `cargo test -p ui --lib --locked` — all five tests pass, including empty-field paste, Unicode caret placement, primary/clipboard separation, Undo, and disabled/read-only protection - `git -c core.whitespace=cr-at-eol diff --check` (preserves the existing CRLF Cargo manifest) Validated with GPUI's simulated input and clipboard platform; no live X11/Wayland compositor test was performed. Release Notes: - Fixed middle-click paste in Linux text fields, including identity import, and added Shift+Insert clipboard paste.
vbmithr added 1 commit 2026-10-08 21:10:47 +00:00
Paste the Linux primary selection at the clicked caret in shared input
fields, including identity import. Preserve read-only and disabled fields
and add Shift+Insert for clipboard paste. Cover mouse and keyboard paste
with GPUI interaction tests and document the supported gestures.

Co-Authored-By: GPT-6 <noreply@openai.com>
reya merged commit 4ef764984b into master 2026-10-10 00:28:09 +00:00
reya deleted branch fix/middle-click-paste 2026-10-10 00:28:11 +00:00
Owner

thank for your contribution

thank for your contribution
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: reya/coop#60