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:
@@ -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':
|
||||
|
||||
Reference in New Issue
Block a user