blob: c8afed39cb419664666a368012ddb824cb8e61b7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
class PassKeysMode extends StateMode
configure: (request) ->
@keyQueue = request.keyQueue if request.keyQueue?
# Decide whether this event should be passed to the underlying page. 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.
handlePassKeyEvent: (event) ->
for keyChar in [KeyboardUtils.getKeyChar(event), String.fromCharCode(event.charCode)]
return @stopBubblingAndTrue if keyChar and not @keyQueue and 0 <= @passKeys.indexOf(keyChar)
@continueBubbling
constructor: ->
super
name: "passkeys"
keydown: (event) => @handlePassKeyEvent event
keypress: (event) => @handlePassKeyEvent event
chooseBadge: (badge) ->
@badge = if @passKeys and not @keyQueue then "P" else ""
super badge
root = exports ? window
root.PassKeysMode = PassKeysMode
|