diff options
author | 2024-02-21 13:21:39 +0100 | |
---|---|---|
committer | 2024-02-21 13:21:39 +0100 | |
commit | 6c00e615b9fb7618c710a3f5d920d00e6b8a258c (patch) | |
tree | 14ee593287c216f2b24aba1fe94f695896e634b4 /widget/src/text_editor.rs | |
parent | 56ac21cacbead255c6ae574ed2b7ba2895018c56 (diff) | |
parent | 4742f3fef803b22a713a3c9ef8317c84810710e9 (diff) | |
download | iced-6c00e615b9fb7618c710a3f5d920d00e6b8a258c.tar.gz iced-6c00e615b9fb7618c710a3f5d920d00e6b8a258c.tar.bz2 iced-6c00e615b9fb7618c710a3f5d920d00e6b8a258c.zip |
Merge pull request #2278 from iced-rs/prioritize-text-insertion
Prioritize text insertion in `TextInput` and `TextEditor`
Diffstat (limited to 'widget/src/text_editor.rs')
-rw-r--r-- | widget/src/text_editor.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs index 50f7fabb..79432fe9 100644 --- a/widget/src/text_editor.rs +++ b/widget/src/text_editor.rs @@ -686,6 +686,13 @@ impl Update { text, .. } if state.is_focused => { + if let Some(text) = text { + if let Some(c) = text.chars().find(|c| !c.is_control()) + { + return edit(Edit::Insert(c)); + } + } + if let keyboard::Key::Named(named_key) = key.as_ref() { if let Some(motion) = motion(named_key) { let motion = if platform::is_jump_modifier_pressed( @@ -732,13 +739,7 @@ impl Update { { Some(Self::Paste) } - _ => { - let text = text?; - - edit(Edit::Insert( - text.chars().next().unwrap_or_default(), - )) - } + _ => None, } } _ => None, |