diff options
Diffstat (limited to 'lib/dom_utils.coffee')
| -rw-r--r-- | lib/dom_utils.coffee | 19 | 
1 files changed, 19 insertions, 0 deletions
| diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee index 690d9969..df9ca390 100644 --- a/lib/dom_utils.coffee +++ b/lib/dom_utils.coffee @@ -315,6 +315,25 @@ DomUtils =          false      handlerStack.suppressEvent +  consumeKeyup: (event, callback = null) -> +    @suppressEvent event +    keyChar = KeyboardUtils.getKeyCharString event +    handlerStack.push +      _name: "dom_utils/consumeKeyup" +      keydown: (event) -> +        @remove() +        handlerStack.continueBubbling +      keyup: (event) -> +        return handlerStack.continueBubbling unless keyChar == KeyboardUtils.getKeyCharString event +        @remove() +        handlerStack.suppressEvent +      # We cannot track keyup events if we lose the focus. +      blur: (event) -> +        @remove() if event.target == window +        handlerStack.continueBubbling +    callback?() +    handlerStack.suppressEvent +    # Adapted from: http://roysharon.com/blog/37.    # This finds the element containing the selection focus.    getElementWithFocus: (selection, backwards) -> | 
