blob: cf74a844d50336bb4b4aab9905b166467565e871 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
class PassKeysMode extends Mode
constructor: ->
super
name: "passkeys"
trackState: true # Maintain @enabled, @passKeys and @keyQueue.
keydown: (event) => @handleKeyChar KeyboardUtils.getKeyChar event
keypress: (event) => @handleKeyChar String.fromCharCode event.charCode
keyup: (event) => @handleKeyChar KeyboardUtils.getKeyChar event
# Keystrokes are *never* considered passKeys if the keyQueue is not empty. So, for example, if 't' is a
# passKey, then 'gt' and '99t' will neverthless be handled by Vimium.
handleKeyChar: (keyChar) ->
if keyChar and not @keyQueue and 0 <= @passKeys.indexOf keyChar
@stopBubblingAndTrue
else
@continueBubbling
root = exports ? window
root.PassKeysMode = PassKeysMode
|