fix repeated key events for firefox

This commit is contained in:
Fabian Jakobs 2010-04-26 13:44:38 +02:00
commit 7212563e3a
2 changed files with 19 additions and 1 deletions

View file

@ -4,7 +4,7 @@ ace.KeyBinding = function(element, editor) {
var keys = this.keys;
ace.addListener(element, "keydown", function(e) {
ace.addKeyListener(element, function(e) {
var key = e.keyCode;
var selection = editor.getSelection();

View file

@ -272,4 +272,22 @@ ace.addTripleClickListener = function(el, callback) {
ace.autoremoveListener(el, "mousedown", callback, 300);
}, 300);
});
};
ace.addKeyListener = function(el, callback) {
var lastDown = null;
ace.addListener(el, "keydown", function(e) {
lastDown = e.keyCode;
return callback(e);
});
ace.addListener(el, "keypress", function(e) {
var keyId = e.keyCode;
if (lastDown !== keyId) {
return callback(e);
} else {
lastDown = null;
}
});
};