Prioritize TextInput and TextEditor commands over text insertion

This commit is contained in:
Héctor Ramón Jiménez 2024-02-28 09:40:14 +01:00
parent a1de3f1c55
commit 996be15f36
No known key found for this signature in database
GPG key ID: 0BF4EC06CD8E5686
2 changed files with 115 additions and 103 deletions

View file

@ -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,
},