[Scummvm-git-logs] scummvm master -> 483b3feb24de48d4f880934ab879c29f7a1451d1

neuromancer noreply at scummvm.org
Sat May 16 06:37:01 UTC 2026


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
483b3feb24 FREESCAPE: purge keyboard events when returning from pause


Commit: 483b3feb24de48d4f880934ab879c29f7a1451d1
    https://github.com/scummvm/scummvm/commit/483b3feb24de48d4f880934ab879c29f7a1451d1
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2026-05-16T08:36:39+02:00

Commit Message:
FREESCAPE: purge keyboard events when returning from pause

Changed paths:
    engines/freescape/freescape.cpp


diff --git a/engines/freescape/freescape.cpp b/engines/freescape/freescape.cpp
index f80b2f9d58c..afa566745c2 100644
--- a/engines/freescape/freescape.cpp
+++ b/engines/freescape/freescape.cpp
@@ -1429,6 +1429,15 @@ void FreescapeEngine::pauseEngineIntern(bool pause) {
 		_system->lockMouse(!pause);
 	}
 
+	// Drop any stuck key state on resume. A modal dialog (GMM, info menu,
+	// etc.) can swallow the KEYUP for a key that was held when it opened
+	// (typically a modifier like Ctrl on Ctrl+F5). If that happens, the
+	// EventManagerWrapper keeps synthesizing KEYDOWN repeats for the
+	// leaked key, which starves CUSTOM_ENGINE_ACTION_START repeats and
+	// makes movement go single-step until the wrapper state is cleared.
+	if (!pause && _eventManager)
+		_eventManager->purgeKeyboardEvents();
+
 	// We don't know when savedScreen will be used, so we do not deallocate it here
 }
 




More information about the Scummvm-git-logs mailing list