aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorjez2011-02-01 01:56:47 +0800
committerjez2011-02-01 01:56:47 +0800
commit7d07dbf78e044c1f717786ec8df1cb0febd9838e (patch)
tree58ec88d5d721b836eafca3c0c6032bf6d6671507 /lib
parent8dc2d517efe48482bc80a9071d93afc60d7ffa95 (diff)
parent97fb81198ae869d71d4b47ed502c16bdd4ca48b6 (diff)
downloadvimium-7d07dbf78e044c1f717786ec8df1cb0febd9838e.tar.bz2
Merge remote branch 'ajkovar/master' into bookmarks
Diffstat (limited to 'lib')
-rw-r--r--lib/keyboardUtils.js22
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));
+ }
+}