A9: right-click context menu (Cut/Copy/Paste/Select All) for all text fields
iced 0.14 ships no native right-click menu on text_input. Add a custom ContextInput widget (src/widget/context_input.rs) that wraps text_input, intercepts right-click to read the inner text_input::State selection, and renders a themed 4-action overlay menu operating on that selection. - Pure, grapheme-indexed edit seam (copy/cut/paste/select_all over iced text_input::Value), unit-tested for ASCII and multi-byte/emoji. - iced::advanced Widget + overlay::Overlay; clipboard via &mut dyn Clipboard, edits published through the existing on_input/on_paste. - Cut/Copy disabled on empty selection (and on secure fields), Select All disabled on empty field, Paste always enabled; dismiss on click-out / Esc / item-click. - Route all 10 text_input call sites in app/mod.rs through context_input. - Cargo.toml: enable iced "advanced" feature (same crate, no new dep). 459 lib tests (+5), clippy --all-targets clean, release green. Implemented by Codex (gpt-5.5), senior-audited against the 5-point brief and re-verified (tests/clippy/release) here. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-Authored-By: Codex (gpt-5.5) <noreply@openai.com>
This commit is contained in:
+1
-1
@@ -57,7 +57,7 @@ async-trait = "0.1.89"
|
||||
base64 = "0.22.1"
|
||||
bytes = "1.11.1"
|
||||
dirs = "6.0.0"
|
||||
iced = { version = "0.14.0", features = ["canvas", "image", "tokio"] }
|
||||
iced = { version = "0.14.0", features = ["advanced", "canvas", "image", "tokio"] }
|
||||
# W4 custom avatars: decode/resize an arbitrary user image (png/jpeg only to keep
|
||||
# the codec surface small). The matching native file picker (`rfd`) is platform-
|
||||
# gated below — its backend differs per OS (xdg-portal on Linux, Win32 on Windows).
|
||||
|
||||
Reference in New Issue
Block a user