From fea7c69aff21592f0aa5096a3bcd702262fcbad5 Mon Sep 17 00:00:00 2001 From: jeremysawicki Date: Tue, 11 Mar 2025 11:59:56 -0700 Subject: [PATCH] Don't write position/key codes to memory when sync was not called (#16) Co-authored-by: Jeremy Sawicki <3847496+jeremysawicki@users.noreply.github.com> --- src/engine.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/engine.rs b/src/engine.rs index 6d0a09b..6b60615 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -86,10 +86,12 @@ impl Engine { key_code: u16, screen_buffer_destination: &mut Vec, ) -> Option> { - self.sync_called = false; // The clone makes the API easier and doesn't seem to be to expensive in practice. *screen_buffer_destination = self.screen_buffer.clone(); - self.set_input(pos_code, key_code); + if self.sync_called { + self.sync_called = false; + self.set_input(pos_code, key_code); + } // Even if no expansion is active, triggering the mechanism must still clear the utility buffer. if self.expansion_triggered { self.expansion_triggered = false;