add support for meta key modifier on windows

This commit is contained in:
nightwing 2013-05-08 19:04:55 +04:00
commit 912b379848

View file

@ -244,6 +244,9 @@ function normalizeCommandKeys(callback, e, keyCode) {
keyCode = 0;
}
if (!useragent.isMac && pressedKeys[91] || pressedKeys[92])
hashId |= 8;
if (hashId & 8 && (keyCode == 91 || keyCode == 93)) {
keyCode = 0;
}
@ -257,6 +260,7 @@ function normalizeCommandKeys(callback, e, keyCode) {
return callback(e, hashId, keyCode);
}
var pressedKeys = Object.create(null);
exports.addCommandKeyListener = function(el, callback) {
var addListener = exports.addListener;
if (useragent.isOldGecko || (useragent.isOpera && !("KeyboardEvent" in window))) {
@ -277,6 +281,7 @@ exports.addCommandKeyListener = function(el, callback) {
var lastDefaultPrevented = null;
addListener(el, "keydown", function(e) {
pressedKeys[e.keyCode] = true;
var result = normalizeCommandKeys(callback, e, e.keyCode);
lastDefaultPrevented = e.defaultPrevented;
return result;
@ -288,6 +293,14 @@ exports.addCommandKeyListener = function(el, callback) {
lastDefaultPrevented = null;
}
});
addListener(el, "keyup", function(e) {
pressedKeys[e.keyCode] = null;
});
addListener(el, "focus", function(e) {
pressedKeys = Object.create(null);
});
}
};