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. Reviewed-on: #60 Co-authored-by: Vincent Bernardoff <vb@luminar.eu.org>
20 lines
1.1 KiB
Markdown
20 lines
1.1 KiB
Markdown
Coop is a simple, fast, and reliable nostr client for secure messaging across all platforms.
|
|
|
|
### Pasting into text fields
|
|
|
|
Click a field and use Ctrl+V (Cmd+V on macOS), or right-click and choose Paste.
|
|
Shift+Insert also pastes from the clipboard on Linux and Windows. On Linux,
|
|
middle-click inserts the primary selection at the clicked position: select text
|
|
in another application first, then middle-click the field. This also works in
|
|
the identity import dialog.
|
|
|
|
### License
|
|
|
|
Copyright (C) 2025 Ren Amamiya & other Coop contributors
|
|
|
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
|