@@ -66,6 +66,10 @@ impl SearchView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn list_index(&self) -> usize {
|
||||||
|
self.list.with_view(|v| v.get_selected_index()).unwrap_or(0)
|
||||||
|
}
|
||||||
|
|
||||||
fn pass_event_focused(&mut self, event: Event) -> EventResult {
|
fn pass_event_focused(&mut self, event: Event) -> EventResult {
|
||||||
if self.edit_focused {
|
if self.edit_focused {
|
||||||
self.edit.on_event(event)
|
self.edit.on_event(event)
|
||||||
@@ -121,6 +125,14 @@ impl View for SearchView {
|
|||||||
self.edit_focused = false;
|
self.edit_focused = false;
|
||||||
EventResult::Consumed(None)
|
EventResult::Consumed(None)
|
||||||
}
|
}
|
||||||
|
Event::Key(Key::Down) if self.edit_focused => {
|
||||||
|
self.edit_focused = false;
|
||||||
|
EventResult::Consumed(None)
|
||||||
|
}
|
||||||
|
Event::Key(Key::Up) if (!self.edit_focused && self.list_index() == 0) => {
|
||||||
|
self.edit_focused = true;
|
||||||
|
EventResult::Consumed(None)
|
||||||
|
}
|
||||||
_ => self.pass_event_focused(event),
|
_ => self.pass_event_focused(event),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user