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.coffee10
1 files changed, 10 insertions, 0 deletions
diff --git a/content_scripts/mode.coffee b/content_scripts/mode.coffee
index fa583a1c..bded402c 100644
--- a/content_scripts/mode.coffee
+++ b/content_scripts/mode.coffee
@@ -120,6 +120,16 @@ class Mode
@registerStateChange?()
registerKeyQueue: ({ keyQueue: keyQueue }) => @alwaysContinueBubbling => @keyQueue = keyQueue
+ # If @options.passInitialKeyupEvents is set, then we pass initial non-printable keyup events to the page
+ # or to other extensions (because the corresponding keydown events were passed). This is used when
+ # activating link hints, see #1522.
+ if @options.passInitialKeyupEvents
+ @push
+ _name: "mode-#{@id}/passInitialKeyupEvents"
+ keydown: => @alwaysContinueBubbling -> handlerStack.remove()
+ keyup: (event) =>
+ if KeyboardUtils.isPrintable event then @stopBubblingAndFalse else @stopBubblingAndTrue
+
Mode.modes.push @
Mode.updateBadge()
@logModes()