diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/keyboardUtils.js | 22 | 
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/keyboardUtils.js b/lib/keyboardUtils.js index fe3dcd59..5b8b4c84 100644 --- a/lib/keyboardUtils.js +++ b/lib/keyboardUtils.js @@ -61,3 +61,25 @@ function isEscape(event) {    return event.keyCode == keyCodes.ESC ||      (event.ctrlKey && getKeyChar(event) == '['); // c-[ is mapped to ESC in Vim by default.  } + +var KeyPressListener = function(handlers) { +  this.handlers = handlers;  +} + +KeyPressListener.prototype = { +  enable: function() { +    var handlers = this.handlers; +    var wrapper = function(callback){ +      return function(event) { +        callback(event) +      } +    } +    (handlers.keyDown && document.addEventListener("keydown", handlers.keyDown, true)); +    (handlers.keyUp && document.addEventListener("keyup", handlers.keyUp, true)); +  }, +  disable: function() { +    var handlers = this.handlers; +    (handlers.keyDown && document.removeEventListener("keydown", handlers.keyDown, true)); +    (handlers.keyUp && document.removeEventListener("keyup", handlers.keyUp, true)); +  } +}  | 
