summaryrefslogtreecommitdiffstats
path: root/widget/src/text_editor.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-02-28 09:40:14 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-02-28 09:40:14 +0100
commit996be15f369e125e2da46194eefc149d7d14230e (patch)
treef9d8b3d70207385c6d5e87523f063dbc0d292a39 /widget/src/text_editor.rs
parenta1de3f1c5593b3fb6e867ac522d1f42c49602a32 (diff)
downloadiced-996be15f369e125e2da46194eefc149d7d14230e.tar.gz
iced-996be15f369e125e2da46194eefc149d7d14230e.tar.bz2
iced-996be15f369e125e2da46194eefc149d7d14230e.zip
Prioritize `TextInput` and `TextEditor` commands over text insertion
Diffstat (limited to 'widget/src/text_editor.rs')
-rw-r--r--widget/src/text_editor.rs62
1 files changed, 32 insertions, 30 deletions
diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs
index 79432fe9..bad3ef4d 100644
--- a/widget/src/text_editor.rs
+++ b/widget/src/text_editor.rs
@@ -686,6 +686,37 @@ impl Update {
text,
..
} if state.is_focused => {
+ match key.as_ref() {
+ keyboard::Key::Named(key::Named::Enter) => {
+ return edit(Edit::Enter);
+ }
+ keyboard::Key::Named(key::Named::Backspace) => {
+ return edit(Edit::Backspace);
+ }
+ keyboard::Key::Named(key::Named::Delete) => {
+ return edit(Edit::Delete);
+ }
+ keyboard::Key::Named(key::Named::Escape) => {
+ return Some(Self::Unfocus);
+ }
+ keyboard::Key::Character("c")
+ if modifiers.command() =>
+ {
+ return Some(Self::Copy);
+ }
+ keyboard::Key::Character("x")
+ if modifiers.command() =>
+ {
+ return Some(Self::Cut);
+ }
+ keyboard::Key::Character("v")
+ if modifiers.command() && !modifiers.alt() =>
+ {
+ return Some(Self::Paste);
+ }
+ _ => {}
+ }
+
if let Some(text) = text {
if let Some(c) = text.chars().find(|c| !c.is_control())
{
@@ -711,36 +742,7 @@ impl Update {
}
}
- match key.as_ref() {
- keyboard::Key::Named(key::Named::Enter) => {
- edit(Edit::Enter)
- }
- keyboard::Key::Named(key::Named::Backspace) => {
- edit(Edit::Backspace)
- }
- keyboard::Key::Named(key::Named::Delete) => {
- edit(Edit::Delete)
- }
- keyboard::Key::Named(key::Named::Escape) => {
- Some(Self::Unfocus)
- }
- keyboard::Key::Character("c")
- if modifiers.command() =>
- {
- Some(Self::Copy)
- }
- keyboard::Key::Character("x")
- if modifiers.command() =>
- {
- Some(Self::Cut)
- }
- keyboard::Key::Character("v")
- if modifiers.command() && !modifiers.alt() =>
- {
- Some(Self::Paste)
- }
- _ => None,
- }
+ None
}
_ => None,
},