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-21 13:00:34 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-02-21 13:00:34 +0100
commit680e8425c3203d1ad5849b5a854c90582cacdb20 (patch)
tree7c3cfbb3f7869dfd72f3055b6eecd7b15a4f1135 /widget/src/text_editor.rs
parent56ac21cacbead255c6ae574ed2b7ba2895018c56 (diff)
downloadiced-680e8425c3203d1ad5849b5a854c90582cacdb20.tar.gz
iced-680e8425c3203d1ad5849b5a854c90582cacdb20.tar.bz2
iced-680e8425c3203d1ad5849b5a854c90582cacdb20.zip
Prioritize text insertion in `TextInput` and `TextEditor`
Diffstat (limited to 'widget/src/text_editor.rs')
-rw-r--r--widget/src/text_editor.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs
index 50f7fabb..0094419b 100644
--- a/widget/src/text_editor.rs
+++ b/widget/src/text_editor.rs
@@ -686,6 +686,14 @@ impl Update {
text,
..
} if state.is_focused => {
+ if let Some(text) = text {
+ if let Some(c) =
+ text.chars().filter(|c| !c.is_control()).next()
+ {
+ 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 +740,7 @@ impl Update {
{
Some(Self::Paste)
}
- _ => {
- let text = text?;
-
- edit(Edit::Insert(
- text.chars().next().unwrap_or_default(),
- ))
- }
+ _ => None,
}
}
_ => None,