diff options
author | 2022-08-04 03:24:44 +0200 | |
---|---|---|
committer | 2022-08-04 03:24:44 +0200 | |
commit | 6eb3dd7e5edc8847875c288c41d1dec8b1dad06e (patch) | |
tree | d4b8ff42a57d520e90fe8d854d83cc3a9377e06f /examples/todos | |
parent | 54ad92ce913629d1d1f623f4b14d51244554a59c (diff) | |
download | iced-6eb3dd7e5edc8847875c288c41d1dec8b1dad06e.tar.gz iced-6eb3dd7e5edc8847875c288c41d1dec8b1dad06e.tar.bz2 iced-6eb3dd7e5edc8847875c288c41d1dec8b1dad06e.zip |
Implement `focus_previous` operation
Diffstat (limited to 'examples/todos')
-rw-r--r-- | examples/todos/src/main.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/examples/todos/src/main.rs b/examples/todos/src/main.rs index 25d90a0b..bb00aac6 100644 --- a/examples/todos/src/main.rs +++ b/examples/todos/src/main.rs @@ -51,7 +51,7 @@ enum Message { CreateTask, FilterChanged(Filter), TaskMessage(usize, TaskMessage), - TabPressed, + TabPressed { shift: bool }, } impl Application for Todos { @@ -147,7 +147,13 @@ impl Application for Todos { Command::none() } - Message::TabPressed => widget::focus_next(), + Message::TabPressed { shift } => { + if shift { + widget::focus_previous() + } else { + widget::focus_next() + } + } _ => Command::none(), }; @@ -251,10 +257,13 @@ impl Application for Todos { ( Event::Keyboard(keyboard::Event::KeyPressed { key_code: keyboard::KeyCode::Tab, + modifiers, .. }), event::Status::Ignored, - ) => Some(Message::TabPressed), + ) => Some(Message::TabPressed { + shift: modifiers.shift(), + }), _ => None, }) } |