[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