make TAB switch between search field and list view
This commit is contained in:
@@ -95,7 +95,6 @@ impl<I: ListItem> View for ListView<I> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn on_event(&mut self, e: Event) -> EventResult {
|
fn on_event(&mut self, e: Event) -> EventResult {
|
||||||
trace!("{:?}", e);
|
|
||||||
match e {
|
match e {
|
||||||
Event::Key(Key::Up) => {
|
Event::Key(Key::Up) => {
|
||||||
self.move_focus(-1);
|
self.move_focus(-1);
|
||||||
|
|||||||
@@ -74,6 +74,13 @@ impl SearchView {
|
|||||||
});
|
});
|
||||||
self.edit_focused = true;
|
self.edit_focused = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn pass_event_focussed(&mut self, event: Event) -> EventResult {
|
||||||
|
match self.edit_focused {
|
||||||
|
true => self.edit.on_event(event),
|
||||||
|
false => self.list.on_event(event)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl View for SearchView {
|
impl View for SearchView {
|
||||||
@@ -113,15 +120,18 @@ impl View for SearchView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn on_event(&mut self, event: Event) -> EventResult {
|
fn on_event(&mut self, event: Event) -> EventResult {
|
||||||
if self.edit_focused {
|
let ret = match event {
|
||||||
if event == Event::Key(Key::Esc) {
|
Event::Key(Key::Tab) => {
|
||||||
|
self.edit_focused = !self.edit_focused;
|
||||||
|
EventResult::Consumed(None)
|
||||||
|
}
|
||||||
|
Event::Key(Key::Esc) if self.edit_focused => {
|
||||||
self.edit_focused = false;
|
self.edit_focused = false;
|
||||||
EventResult::Consumed(None)
|
EventResult::Consumed(None)
|
||||||
} else {
|
|
||||||
self.edit.on_event(event)
|
|
||||||
}
|
}
|
||||||
} else {
|
_ => self.pass_event_focussed(event)
|
||||||
self.list.on_event(event)
|
};
|
||||||
}
|
|
||||||
|
ret
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user