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 |
