aboutsummaryrefslogtreecommitdiff
path: root/src/event.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/event.rs')
-rw-r--r--src/event.rs27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/event.rs b/src/event.rs
index bfe1fa5..52013a5 100644
--- a/src/event.rs
+++ b/src/event.rs
@@ -6,11 +6,28 @@ use crate::app::App;
pub fn handle_event(app: &mut App) -> io::Result<bool> {
if let Event::Key(key) = event::read()? {
- match key.code {
- KeyCode::Char('q') => return Ok(true),
- KeyCode::Char('j') => app.list_state.select_next(),
- KeyCode::Char('k') => app.list_state.select_previous(),
- _ => return Ok(false),
+ if !app.showing_search_window {
+ match key.code {
+ KeyCode::Char('q') => return Ok(true),
+ KeyCode::Char('j') => app.list_state.select_next(),
+ KeyCode::Char('k') => app.list_state.select_previous(),
+ KeyCode::Char('/') => app.toggle_search_window(),
+ _ => return Ok(false),
+ }
+ } else {
+ match key.code {
+ KeyCode::Esc => app.toggle_search_window(),
+ KeyCode::Enter => {
+ app.search();
+ app.toggle_search_window();
+ ()
+ }
+ _ => {
+ app.textarea.input_without_shortcuts(key);
+ app.search_found = Some(app.search());
+ ()
+ }
+ }
}
}