From ad5af6a27a7b0fea7f5d0d11b48d9d15e4c6e5e6 Mon Sep 17 00:00:00 2001 From: CrispyPin Date: Wed, 1 Feb 2023 21:21:49 +0100 Subject: [PATCH] redraw properly when window is resized --- src/main.rs | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main.rs b/src/main.rs index 04baa7b..c6fd059 100644 --- a/src/main.rs +++ b/src/main.rs @@ -144,7 +144,7 @@ impl App { println!("Play/pause: Space\r"); println!("Master volume: [.] [,]\r"); println!("Select channel: Up/Down\r"); - println!("Mute channel: M\r"); + println!("Mute channel: [M]\r"); println!("Channel volume: Left/Right\r"); } @@ -153,18 +153,22 @@ impl App { return; } - let Ok(Event::Key(event)) = event::read() else { return }; - - match event.code { - KeyCode::Char('q') => self.quit = true, - KeyCode::Up => self.select_prev(), - KeyCode::Down => self.select_next(), - KeyCode::Right => self.channels[self.selected].change_vol(10), - KeyCode::Left => self.channels[self.selected].change_vol(-10), - KeyCode::Char('m') => self.channels[self.selected].mute(), - KeyCode::Char(' ') => self.mute(), - KeyCode::Char('.') => self.inc_vol(), - KeyCode::Char(',') => self.dec_vol(), + match event::read() { + Ok(Event::Resize(_, _)) => { + stdout().execute(Clear(ClearType::All)).unwrap(); + } + Ok(Event::Key(event)) => match event.code { + KeyCode::Char('q') => self.quit = true, + KeyCode::Up => self.select_prev(), + KeyCode::Down => self.select_next(), + KeyCode::Right => self.channels[self.selected].change_vol(10), + KeyCode::Left => self.channels[self.selected].change_vol(-10), + KeyCode::Char('m') => self.channels[self.selected].mute(), + KeyCode::Char(' ') => self.mute(), + KeyCode::Char('.') => self.inc_vol(), + KeyCode::Char(',') => self.dec_vol(), + _ => (), + }, _ => (), } }