fix(input): handle space named key

This commit is contained in:
Ashley Wulber 2024-02-09 13:27:27 -05:00 committed by Jeremy Soller
parent f9d2e58327
commit 5738ac2055

View file

@ -1299,7 +1299,7 @@ where
return event::Status::Captured; return event::Status::Captured;
} }
} }
Event::Keyboard(keyboard::Event::KeyPressed { key, .. }) => { Event::Keyboard(keyboard::Event::KeyPressed { key, text, .. }) => {
let state = state(); let state = state();
if let Some(focus) = &mut state.is_focused { if let Some(focus) = &mut state.is_focused {
@ -1489,19 +1489,24 @@ where
state.keyboard_modifiers = keyboard::Modifiers::default(); state.keyboard_modifiers = keyboard::Modifiers::default();
} }
keyboard::Key::Named(keyboard::key::Named::Tab) keyboard::Key::Named(
| keyboard::Key::Named(keyboard::key::Named::ArrowUp) keyboard::key::Named::Tab
| keyboard::Key::Named(keyboard::key::Named::ArrowDown) => { | keyboard::key::Named::ArrowUp
| keyboard::key::Named::ArrowDown,
) => {
return event::Status::Ignored; return event::Status::Ignored;
} }
keyboard::Key::Character(c) => { keyboard::Key::Character(_)
| keyboard::Key::Named(keyboard::key::Named::Space) => {
if state.is_pasting.is_none() if state.is_pasting.is_none()
&& !state.keyboard_modifiers.command() && !state.keyboard_modifiers.command()
&& !modifiers.control() && !modifiers.control()
{ {
let mut editor = Editor::new(unsecured_value, &mut state.cursor); let mut editor = Editor::new(unsecured_value, &mut state.cursor);
editor.insert(c.chars().next().unwrap_or_default()); editor.insert(
text.unwrap_or_default().chars().next().unwrap_or_default(),
);
let contents = editor.contents(); let contents = editor.contents();
let unsecured_value = Value::new(&contents); let unsecured_value = Value::new(&contents);
let message = (on_input)(contents); let message = (on_input)(contents);