other: add a redraw event on resize (#926)
This commit is contained in:
parent
ac5e2ce4a2
commit
1920f4b2e1
|
@ -157,6 +157,9 @@ fn main() -> Result<()> {
|
|||
// TODO: Would be good to instead use a mix of is_terminated check + recv. Probably use a termination event instead.
|
||||
if let Ok(recv) = receiver.recv_timeout(Duration::from_millis(TICK_RATE_IN_MILLISECONDS)) {
|
||||
match recv {
|
||||
BottomEvent::Resize => {
|
||||
try_drawing(&mut terminal, &mut app, &mut painter)?;
|
||||
}
|
||||
BottomEvent::KeyInput(event) => {
|
||||
if handle_key_event_or_break(event, &mut app, &collection_thread_ctrl_sender) {
|
||||
break;
|
||||
|
|
|
@ -71,6 +71,7 @@ pub type Pid = libc::pid_t;
|
|||
|
||||
#[derive(Debug)]
|
||||
pub enum BottomEvent {
|
||||
Resize,
|
||||
KeyInput(KeyEvent),
|
||||
MouseInput(MouseEvent),
|
||||
PasteEvent(String),
|
||||
|
@ -431,6 +432,14 @@ pub fn create_input_thread(
|
|||
if let Ok(event) = read() {
|
||||
// FIXME: Handle all other event cases.
|
||||
match event {
|
||||
// TODO: Might want to debounce this in the future, or take into account the actual resize
|
||||
// values. Maybe we want to keep the current implementation in case the resize event might
|
||||
// not fire... not sure.
|
||||
Event::Resize(_, _) => {
|
||||
if sender.send(BottomEvent::Resize).is_err() {
|
||||
break;
|
||||
}
|
||||
}
|
||||
Event::Paste(paste) => {
|
||||
if sender.send(BottomEvent::PasteEvent(paste)).is_err() {
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue