diff options
Diffstat (limited to 'content_scripts/vimium_frontend.coffee')
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index 487012dd..55de9274 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -474,14 +474,20 @@ onKeyup = (event) ->    return unless handlerStack.bubbleEvent("keyup", event)    return if isInsertMode() -  # Don't propagate the keyup to the underlying page if Vimium has handled it. See #733. +  # Check whether we have handled a keydown for this keyup, and remove all matching keydowns from +  # handledKeydownEvents. +  # NOTE: There can be multiple keydown events for every keyup due to keys repeating when held. +  hasHandledKeydown = false    handledKeydownEvents = handledKeydownEvents.filter (keydown) ->      (event.metaKey != keydown.metaKey or       event.altKey != keydown.altKey or       event.ctrlKey != keydown.ctrlKey or       event.keyIdentifier != keydown.keyIdentifier or       event.keyCode != keydown.keyCode) and -    DomUtils.suppressPropagation(event) # Suppress the event if we found a corresponding keydown +     hasHandledKeydown = true # We've found a matching keydown! + +  # Don't propagate the keyup to the underlying page if Vimium has handled it. See #733. +  DomUtils.suppressPropagation(event) if hasHandledKeydown  checkIfEnabledForUrl = ->    url = window.location.toString() | 
