prevent from constantly pressing the escape key when user quits or reloads the web browser so that the menu wont toggle each time ingame

This commit is contained in:
2026-07-05 00:11:22 +01:00
parent 277062cdb6
commit 28d78f0f0e
2 changed files with 15 additions and 5 deletions
+9 -2
View File
@@ -90,8 +90,9 @@ def release_all_keys():
except Exception:
pass
_held_keys.clear()
# Reset X11 modifier state (clears stuck shift/ctrl/alt etc.)
xdotool('key', '--clearmodifiers', 'Escape')
# Reset X11 modifier state using a neutral key that has no in-game effect
# Escape was previously used here but it toggles the in-game menu
xdotool('key', '--clearmodifiers', 'ctrl')
def handle_input(event):
t = event.get('type')
@@ -106,10 +107,16 @@ def handle_input(event):
xdotool('mouseup', str(event.get('button', 1)))
elif t == 'key_down':
key = event.get('key', '')
# Block characters that can be used for console command injection
# via chat. ";" splits commands and '"' opens/closes command strings.
if key in (';', 'semicolon', '"', 'quotedbl', 'quote'):
return
_held_keys.add(key)
xdotool('keydown', key)
elif t == 'key_up':
key = event.get('key', '')
if key in (';', 'semicolon', '"', 'quotedbl', 'quote'):
return
_held_keys.discard(key)
xdotool('keyup', key)
elif t == 'mouse_wheel':