diff options
Diffstat (limited to 'lib/keyboardUtils.js')
| -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)); + } +} |
