aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/mode.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'content_scripts/mode.coffee')
-rw-r--r--content_scripts/mode.coffee13
1 files changed, 12 insertions, 1 deletions
diff --git a/content_scripts/mode.coffee b/content_scripts/mode.coffee
index a4a91c1f..8bdd6dd7 100644
--- a/content_scripts/mode.coffee
+++ b/content_scripts/mode.coffee
@@ -198,6 +198,17 @@ class SuppressAllKeyboardEvents extends Mode
suppressAllKeyboardEvents: true
super extend defaults, options
+class CacheAllKeydownEvents extends SuppressAllKeyboardEvents
+ constructor: (options = {}) ->
+ @keydownEvents = keydownEvents = []
+ defaults =
+ name: "cacheAllKeydownEvents"
+ keydown: (event) -> keydownEvents.push event
+ super extend defaults, options
+
+ replayKeydownEvents: ->
+ handlerStack.bubbleEvent "keydown", event for event in @keydownEvents
+
root = exports ? (window.root ?= {})
-extend root, {Mode, SuppressAllKeyboardEvents}
+extend root, {Mode, SuppressAllKeyboardEvents, CacheAllKeydownEvents}
extend window, root unless exports?