summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/list.rs16
-rw-r--r--src/watch/terminal_event.rs6
2 files changed, 16 insertions, 6 deletions
diff --git a/src/list.rs b/src/list.rs
index de120ea..2430ed7 100644
--- a/src/list.rs
+++ b/src/list.rs
@@ -1,6 +1,6 @@
use anyhow::Result;
use crossterm::{
- event::{self, Event, KeyCode, KeyEventKind},
+ event::{self, Event, KeyCode, KeyEventKind, KeyModifiers},
terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen},
ExecutableCommand,
};
@@ -28,10 +28,16 @@ pub fn list(app_state: &mut AppState) -> Result<()> {
let key = loop {
match event::read()? {
- Event::Key(key) => match key.kind {
- KeyEventKind::Press | KeyEventKind::Repeat => break key,
- KeyEventKind::Release => (),
- },
+ Event::Key(key) => {
+ if key.modifiers != KeyModifiers::NONE {
+ continue;
+ }
+
+ match key.kind {
+ KeyEventKind::Press | KeyEventKind::Repeat => break key,
+ KeyEventKind::Release => (),
+ }
+ }
// Redraw
Event::Resize(_, _) => continue 'outer,
// Ignore
diff --git a/src/watch/terminal_event.rs b/src/watch/terminal_event.rs
index 7c85b5b..faca8a2 100644
--- a/src/watch/terminal_event.rs
+++ b/src/watch/terminal_event.rs
@@ -1,4 +1,4 @@
-use crossterm::event::{self, Event, KeyCode, KeyEventKind};
+use crossterm::event::{self, Event, KeyCode, KeyEventKind, KeyModifiers};
use std::sync::mpsc::Sender;
use super::WatchEvent;
@@ -26,6 +26,10 @@ pub fn terminal_event_handler(tx: Sender<WatchEvent>) {
match terminal_event {
Event::Key(key) => {
+ if key.modifiers != KeyModifiers::NONE {
+ continue;
+ }
+
match key.kind {
KeyEventKind::Release => continue,
KeyEventKind::Press | KeyEventKind::Repeat => (),