diff options
| -rw-r--r-- | content_scripts/mode.coffee | 2 | ||||
| -rw-r--r-- | content_scripts/mode_find.coffee | 2 | ||||
| -rw-r--r-- | content_scripts/mode_insert.coffee | 2 | ||||
| -rw-r--r-- | content_scripts/mode_key_handler.coffee | 2 | ||||
| -rw-r--r-- | lib/dom_utils.coffee | 19 | 
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. | 
