diff --git a/src/app/threads/handle_input_events.rs b/src/app/threads/handle_events.rs similarity index 68% rename from src/app/threads/handle_input_events.rs rename to src/app/threads/handle_events.rs index ec3d70b..27d7b1f 100644 --- a/src/app/threads/handle_input_events.rs +++ b/src/app/threads/handle_events.rs @@ -2,7 +2,8 @@ use crate::app::threads::AppEvent; use ratatui::crossterm::event::{Event, read}; use std::sync::mpsc::Sender; -pub fn handle_input_events(tx: Sender) { +/// Reads *all* crossterm events and forwards the ones we care about. +pub fn handle_events(tx: Sender) { loop { match read() { Ok(ev) => match ev { @@ -11,8 +12,8 @@ pub fn handle_input_events(tx: Sender) { break; } } - Event::Resize(c, r) => { - if tx.send(AppEvent::Resize(c, r)).is_err() { + Event::Resize(cols, rows) => { + if tx.send(AppEvent::Resize(cols, rows)).is_err() { break; } } diff --git a/src/app/threads/mod.rs b/src/app/threads/mod.rs index d50f03d..93ef8cb 100644 --- a/src/app/threads/mod.rs +++ b/src/app/threads/mod.rs @@ -1,5 +1,5 @@ pub mod events; -pub mod handle_input_events; +pub mod handle_events; pub use events::AppEvent; -pub use handle_input_events::handle_input_events; +pub use handle_events::handle_events; diff --git a/src/main.rs b/src/main.rs index 847f62d..190de3f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,13 +1,13 @@ use ratatui::{Terminal, prelude::CrosstermBackend}; use std::{ io::{Result, Stdout}, - sync::mpsc::{Sender, channel}, + sync::mpsc::channel, thread::{self, JoinHandle}, }; use war_in_tunnels::{ app::{ App, - threads::{AppEvent, handle_input_events}, + threads::{AppEvent, handle_events}, }, cli::{Cli, get_args}, logs::init_logger, @@ -27,17 +27,16 @@ fn main() -> Result<()> { let mut terminal: Terminal> = ratatui::init(); let mut app: App = App::new(args); - let (event_tx, event_rx) = channel::(); + let (app_event_tx, app_event_rx) = channel::(); - let tx_to_input_events: Sender = event_tx.clone(); - let input_thread: JoinHandle<()> = thread::spawn(move || { - handle_input_events(tx_to_input_events); + let app_event_thread: JoinHandle<()> = thread::spawn(move || { + handle_events(app_event_tx); }); - let app_result: Result<()> = app.run(&mut terminal, event_rx); + let app_result: Result<()> = app.run(&mut terminal, app_event_rx); ratatui::restore(); - let _ = input_thread.join(); + let _ = app_event_thread.join(); app_result }