diff options
Diffstat (limited to 'content_scripts/mode.coffee')
| -rw-r--r-- | content_scripts/mode.coffee | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/content_scripts/mode.coffee b/content_scripts/mode.coffee index f631b4cd..b2019ef9 100644 --- a/content_scripts/mode.coffee +++ b/content_scripts/mode.coffee @@ -47,6 +47,15 @@ class Mode      @id = "#{@name}-#{@count}"      @log "activate:", @id +    # If options.suppressAllKeyboardEvents is truthy, then all keyboard events are suppressed.  This avoids +    # the need for modes which block all keyboard events to 1) provide handlers for all keyboard events, +    # and 2) worry about their return value. +    if options.suppressAllKeyboardEvents +      for type in [ "keydown", "keypress", "keyup" ] +        do (type) -> +          handler = options[type] +          options[type] = (event) -> handler? event; false +      @push        keydown: @options.keydown || null        keypress: @options.keypress || null | 
