summaryrefslogtreecommitdiffstats
path: root/examples/todos/src
diff options
context:
space:
mode:
Diffstat (limited to 'examples/todos/src')
-rw-r--r--examples/todos/src/main.rs15
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,
})
}