From 279bbb05cde1fc970df8899ddd376cb95da2b276 Mon Sep 17 00:00:00 2001 From: Luke <11898833+curlpipe@users.noreply.github.com> Date: Sat, 21 Dec 2024 21:27:27 +0000 Subject: [PATCH] Fixed issues with runner terminal not updating --- src/events.rs | 29 +++++++++++++++++------------ src/pty.rs | 2 -- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/events.rs b/src/events.rs index f8c037e..d30a532 100644 --- a/src/events.rs +++ b/src/events.rs @@ -14,14 +14,15 @@ pub fn mm_active(editor: &AnyUserData) -> bool { ged!(mut &editor).macro_man.playing } -pub fn hold_event(editor: &AnyUserData) -> bool { - matches!( - ( - mm_active(editor), - term_force(editor), - poll(Duration::from_millis(50)) +/// (should hold event, triggered by term force?) +pub fn hold_event(editor: &AnyUserData) -> (bool, bool) { + let tf = term_force(editor); + ( + matches!( + (mm_active(editor), tf, poll(Duration::from_millis(50))), + (false, false, Ok(false)) ), - (false, false, Ok(false)) + !tf, ) } @@ -29,7 +30,7 @@ pub fn wait_for_event(editor: &AnyUserData, lua: &Lua) -> Result { loop { // While waiting for an event to come along, service the task manager if !mm_active(editor) { - while hold_event(editor) { + while let (true, was_term) = hold_event(editor) { let exec = ged!(mut &editor) .config .task_manager @@ -47,7 +48,7 @@ pub fn wait_for_event(editor: &AnyUserData, lua: &Lua) -> Result { } // If a terminal dictates, force a rerender #[cfg(not(target_os = "windows"))] - if term_force(editor) { + if was_term { ged!(mut &editor).needs_rerender = true; ged!(mut &editor).render(lua)?; } @@ -100,9 +101,13 @@ pub fn get_event(editor: &mut Editor) -> Option { if let Some(ev) = editor.macro_man.next() { // Take from macro man Some(ev) - } else if let Ok(ev) = read() { - // Use standard crossterm event - Some(ev) + } else if let Ok(true) = poll(Duration::from_millis(50)) { + if let Ok(ev) = read() { + // Use standard crossterm event + Some(ev) + } else { + None + } } else { None } diff --git a/src/pty.rs b/src/pty.rs index 0c9a591..675ffcc 100644 --- a/src/pty.rs +++ b/src/pty.rs @@ -117,7 +117,6 @@ impl Pty { } // println!("Adding (aftercmd) \"{:?}\"", output); self.output += &output; - self.force_rerender = true; Ok(()) } @@ -127,7 +126,6 @@ impl Pty { if self.output.starts_with(cmd) { self.output = self.output.chars().skip(cmd.chars().count()).collect(); } - self.force_rerender = true; Ok(()) }