aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content_scripts/vimium_frontend.coffee18
1 files changed, 9 insertions, 9 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee
index ddc80464..781223b1 100644
--- a/content_scripts/vimium_frontend.coffee
+++ b/content_scripts/vimium_frontend.coffee
@@ -464,25 +464,25 @@ extend window,
KeydownEvents =
handledEvents: {}
- stringify: (event) ->
- JSON.stringify
- metaKey: event.metaKey
- altKey: event.altKey
- ctrlKey: event.ctrlKey
- keyIdentifier: event.keyIdentifier
- keyCode: event.keyCode
+ getEventCode: (event) -> event.keyCode
push: (event) ->
- @handledEvents[@stringify event] = true
+ @handledEvents[@getEventCode event] = true
# Yields truthy or falsy depending upon whether a corresponding keydown event is present (and removes that
# event).
pop: (event) ->
- detailString = @stringify event
+ detailString = @getEventCode event
value = @handledEvents[detailString]
delete @handledEvents[detailString]
value
+ clear: -> @handledEvents = {}
+
+handlerStack.push
+ _name: "KeydownEvents-cleanup"
+ blur: (event) -> KeydownEvents.clear() if event.target == window; true
+
#
# Sends everything except i & ESC to the handler in background_page. i & ESC are special because they control
# insert mode which is local state to the page. The key will be are either a single ascii letter or a