summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2024-04-11 15:08:46 +0200
committermo8it <mo8it@proton.me>2024-04-11 15:08:46 +0200
commite79bc727f07bbe99092f30e66f4df845a2cd2ec5 (patch)
tree1ab7815c27e4043b2111ffaf864c5f59b996734a
parent2e1a87d7d3671c82932eb63b38ba383ce1fc7d53 (diff)
Don't listen on keys with modifiers
-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 => (),