From 287cd78ae53bb3d937fe5b93fbfe3970a27d5152 Mon Sep 17 00:00:00 2001 From: Jeremy Sawicki <3847496+jeremysawicki@users.noreply.github.com> Date: Tue, 11 Mar 2025 09:29:17 -0700 Subject: [PATCH] Don't write position/key codes to memory when sync was not called --- 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;