From af74bf84adbe0abcf7fa491f352d31b417c78cd4 Mon Sep 17 00:00:00 2001 From: mrmr1993 Date: Sun, 29 Oct 2017 14:35:36 +0000 Subject: Suppress all keyup events automatically if we consume the keydown --- lib/dom_utils.coffee | 3 ++- lib/handler_stack.coffee | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee index e771d436..b44f5f51 100644 --- a/lib/dom_utils.coffee +++ b/lib/dom_utils.coffee @@ -353,7 +353,8 @@ DomUtils = keyup: (event) -> return handlerStack.continueBubbling unless event.code == code @remove() - handlerStack.suppressEvent + DomUtils.suppressEvent event + handlerStack.continueBubbling # We cannot track keyup events if we lose the focus. blur: (event) -> @remove() if event.target == window diff --git a/lib/handler_stack.coffee b/lib/handler_stack.coffee index 2439f55c..646ddfbd 100644 --- a/lib/handler_stack.coffee +++ b/lib/handler_stack.coffee @@ -65,7 +65,11 @@ class HandlerStack true # Do nothing, but continue bubbling. else # result is @suppressEvent or falsy. - DomUtils.suppressEvent event if @isChromeEvent event + if @isChromeEvent event + if type == "keydown" + DomUtils.consumeKeyup event + else + DomUtils.suppressEvent event return false # None of our handlers care about this event, so pass it to the page. -- cgit v1.2.3