Merge pull request #601 from nightwing/opera
fix for repeated keypress on opera
This commit is contained in:
commit
73dd10abc7
1 changed files with 1 additions and 13 deletions
|
|
@ -286,7 +286,7 @@ function normalizeCommandKeys(callback, e, keyCode) {
|
||||||
|
|
||||||
exports.addCommandKeyListener = function(el, callback) {
|
exports.addCommandKeyListener = function(el, callback) {
|
||||||
var addListener = exports.addListener;
|
var addListener = exports.addListener;
|
||||||
if (useragent.isOldGecko) {
|
if (useragent.isOldGecko || useragent.isOpera) {
|
||||||
// Old versions of Gecko aka. Firefox < 4.0 didn't repeat the keydown
|
// Old versions of Gecko aka. Firefox < 4.0 didn't repeat the keydown
|
||||||
// event if the user pressed the key for a longer time. Instead, the
|
// event if the user pressed the key for a longer time. Instead, the
|
||||||
// keydown event was fired once and later on only the keypress event.
|
// keydown event was fired once and later on only the keypress event.
|
||||||
|
|
@ -307,18 +307,6 @@ exports.addCommandKeyListener = function(el, callback) {
|
||||||
lastDown = e.keyIdentifier || e.keyCode;
|
lastDown = e.keyIdentifier || e.keyCode;
|
||||||
return normalizeCommandKeys(callback, e, e.keyCode);
|
return normalizeCommandKeys(callback, e, e.keyCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
// repeated keys are fired as keypress and not keydown events
|
|
||||||
if (useragent.isMac && useragent.isOpera) {
|
|
||||||
addListener(el, "keypress", function(e) {
|
|
||||||
var keyId = e.keyIdentifier || e.keyCode;
|
|
||||||
if (lastDown !== keyId) {
|
|
||||||
return normalizeCommandKeys(callback, e, lastDown);
|
|
||||||
} else {
|
|
||||||
lastDown = null;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue