Merge pull request #1438 from ajaxorg/keyboard/meta
add support for meta key modifier on windows
This commit is contained in:
commit
d14888a8a0
1 changed files with 13 additions and 0 deletions
|
|
@ -244,6 +244,9 @@ function normalizeCommandKeys(callback, e, keyCode) {
|
||||||
keyCode = 0;
|
keyCode = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!useragent.isMac && pressedKeys[91] || pressedKeys[92])
|
||||||
|
hashId |= 8;
|
||||||
|
|
||||||
if (hashId & 8 && (keyCode == 91 || keyCode == 93)) {
|
if (hashId & 8 && (keyCode == 91 || keyCode == 93)) {
|
||||||
keyCode = 0;
|
keyCode = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -257,6 +260,7 @@ function normalizeCommandKeys(callback, e, keyCode) {
|
||||||
return callback(e, hashId, keyCode);
|
return callback(e, hashId, keyCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var pressedKeys = Object.create(null);
|
||||||
exports.addCommandKeyListener = function(el, callback) {
|
exports.addCommandKeyListener = function(el, callback) {
|
||||||
var addListener = exports.addListener;
|
var addListener = exports.addListener;
|
||||||
if (useragent.isOldGecko || (useragent.isOpera && !("KeyboardEvent" in window))) {
|
if (useragent.isOldGecko || (useragent.isOpera && !("KeyboardEvent" in window))) {
|
||||||
|
|
@ -277,6 +281,7 @@ exports.addCommandKeyListener = function(el, callback) {
|
||||||
var lastDefaultPrevented = null;
|
var lastDefaultPrevented = null;
|
||||||
|
|
||||||
addListener(el, "keydown", function(e) {
|
addListener(el, "keydown", function(e) {
|
||||||
|
pressedKeys[e.keyCode] = true;
|
||||||
var result = normalizeCommandKeys(callback, e, e.keyCode);
|
var result = normalizeCommandKeys(callback, e, e.keyCode);
|
||||||
lastDefaultPrevented = e.defaultPrevented;
|
lastDefaultPrevented = e.defaultPrevented;
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -288,6 +293,14 @@ exports.addCommandKeyListener = function(el, callback) {
|
||||||
lastDefaultPrevented = null;
|
lastDefaultPrevented = null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
addListener(el, "keyup", function(e) {
|
||||||
|
pressedKeys[e.keyCode] = null;
|
||||||
|
});
|
||||||
|
|
||||||
|
addListener(el, "focus", function(e) {
|
||||||
|
pressedKeys = Object.create(null);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue