aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content_scripts/mode.coffee2
-rw-r--r--content_scripts/mode_find.coffee2
-rw-r--r--content_scripts/mode_insert.coffee2
-rw-r--r--content_scripts/mode_key_handler.coffee2
-rw-r--r--lib/dom_utils.coffee19
5 files changed, 7 insertions, 20 deletions
diff --git a/content_scripts/mode.coffee b/content_scripts/mode.coffee
index 2d8cc9cc..85187b2c 100644
--- a/content_scripts/mode.coffee
+++ b/content_scripts/mode.coffee
@@ -82,7 +82,7 @@ class Mode
"keydown": (event) =>
return @continueBubbling unless KeyboardUtils.isEscape event
@exit event, event.target
- DomUtils.suppressKeyupAfterEscape handlerStack
+ DomUtils.consumeKeyup event
# If @options.exitOnBlur is truthy, then it should be an element. The mode will exit when that element
# loses the focus.
diff --git a/content_scripts/mode_find.coffee b/content_scripts/mode_find.coffee
index 63825600..77d3762d 100644
--- a/content_scripts/mode_find.coffee
+++ b/content_scripts/mode_find.coffee
@@ -48,7 +48,7 @@ class PostFindMode extends SuppressPrintable
keydown: (event) =>
if KeyboardUtils.isEscape event
@exit()
- DomUtils.suppressKeyupAfterEscape handlerStack
+ DomUtils.consumeKeyup event
else
handlerStack.remove()
@continueBubbling
diff --git a/content_scripts/mode_insert.coffee b/content_scripts/mode_insert.coffee
index 73a24112..a4f1836d 100644
--- a/content_scripts/mode_insert.coffee
+++ b/content_scripts/mode_insert.coffee
@@ -26,7 +26,7 @@ class InsertMode extends Mode
# An editable element in a shadow DOM is focused; blur it.
@insertModeLock.blur()
@exit event, event.target
- DomUtils.suppressKeyupAfterEscape handlerStack
+ DomUtils.consumeKeyup event
defaults =
name: "insert"
diff --git a/content_scripts/mode_key_handler.coffee b/content_scripts/mode_key_handler.coffee
index f306ea06..1b3b21e7 100644
--- a/content_scripts/mode_key_handler.coffee
+++ b/content_scripts/mode_key_handler.coffee
@@ -38,7 +38,7 @@ class KeyHandlerMode extends Mode
keydown: (event) =>
if KeyboardUtils.isEscape(event) and not @isInResetState()
@reset()
- DomUtils.suppressKeyupAfterEscape handlerStack
+ DomUtils.consumeKeyup event
else
@continueBubbling
diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee
index 8764bdbe..3f0bd7f3 100644
--- a/lib/dom_utils.coffee
+++ b/lib/dom_utils.coffee
@@ -305,27 +305,13 @@ DomUtils =
event.preventDefault()
@suppressPropagation(event)
- # Suppress the next keyup event for Escape.
- suppressKeyupAfterEscape: (handlerStack) ->
- handlerStack.push
- _name: "dom_utils/suppressKeyupAfterEscape"
- keyup: (event) ->
- return true unless KeyboardUtils.isEscape event
- @remove()
- false
- handlerStack.suppressEvent
-
consumeKeyup: (event, callback = null) ->
- @suppressEvent event
- keyChar = KeyboardUtils.getKeyCharString event
+ code = event.code
unless event.repeat
handlerStack.push
_name: "dom_utils/consumeKeyup"
- keydown: (event) ->
- @remove()
- handlerStack.continueBubbling
keyup: (event) ->
- return handlerStack.continueBubbling unless keyChar == KeyboardUtils.getKeyCharString event
+ return handlerStack.continueBubbling unless event.code == code
@remove()
handlerStack.suppressEvent
# We cannot track keyup events if we lose the focus.
@@ -333,6 +319,7 @@ DomUtils =
@remove() if event.target == window
handlerStack.continueBubbling
callback?()
+ @suppressEvent event
handlerStack.suppressEvent
# Adapted from: http://roysharon.com/blog/37.