From 27cb8c7e3308b892692fb1174a90b8658738db5a Mon Sep 17 00:00:00 2001 From: Jens Krause <47693+sectore@users.noreply.github.com> Date: Wed, 29 Oct 2025 11:03:49 +0100 Subject: [PATCH] fix: filter `KeyEventKind::Press` out (#137) to ignore all the other `CrosstermEvent::Key` events --- src/events.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/events.rs b/src/events.rs index b9a162e..b3ca7d4 100644 --- a/src/events.rs +++ b/src/events.rs @@ -1,4 +1,4 @@ -use crossterm::event::{Event as CrosstermEvent, EventStream}; +use crossterm::event::{Event as CrosstermEvent, EventStream, KeyEventKind}; use futures::{Stream, StreamExt}; use ratatui::layout::Position; use std::{pin::Pin, time::Duration}; @@ -92,7 +92,10 @@ fn crossterm_stream() -> Pin>> { // we are not interested in all events .filter_map(|result| async move { match result { - Ok(event) => Some(TuiEvent::Crossterm(event)), + // filter `KeyEventKind::Press` out to ignore all the other `CrosstermEvent::Key` events + Ok(CrosstermEvent::Key(key)) => (key.kind == KeyEventKind::Press) + .then_some(TuiEvent::Crossterm(CrosstermEvent::Key(key))), + Ok(other) => Some(TuiEvent::Crossterm(other)), Err(_) => Some(TuiEvent::Error), } }),