diff --git a/core/modules/utils/dom/keyboard.js b/core/modules/utils/dom/keyboard.js index 31ceacc4a..cc0736962 100644 --- a/core/modules/utils/dom/keyboard.js +++ b/core/modules/utils/dom/keyboard.js @@ -48,6 +48,8 @@ exports.parseKeyDescriptor = function(keyDescriptor) { info.shiftKey = true; } else if(s === "alt") { info.altKey = true; + } else if(s === "meta") { + info.metaKey = true; } // Replace named keys with their code if(namedKeys[s]) { @@ -57,4 +59,12 @@ exports.parseKeyDescriptor = function(keyDescriptor) { return info; }; +exports.checkKeyDescriptor = function(event,keyInfo) { + return event.keyCode === keyInfo.keyCode && + event.shiftKey === keyInfo.shiftKey && + event.altKey === keyInfo.altKey && + event.ctrlKey === keyInfo.ctrlKey && + event.metaKey === keyInfo.metaKey; +}; + })(); diff --git a/core/modules/widgets/keyboard.js b/core/modules/widgets/keyboard.js index c30649f86..2eb392a75 100644 --- a/core/modules/widgets/keyboard.js +++ b/core/modules/widgets/keyboard.js @@ -41,10 +41,7 @@ KeyboardWidget.prototype.render = function(parent,nextSibling) { domNode.className = classes.join(" "); // Add a keyboard event handler domNode.addEventListener("keydown",function (event) { - if(event.keyCode === self.keyInfo.keyCode && - event.shiftKey === self.keyInfo.shiftKey && - event.altKey === self.keyInfo.altKey && - event.ctrlKey === self.keyInfo.ctrlKey) { + if($tw.utils.checkKeyDescriptor(event,self.keyInfo)) { self.dispatchMessage(event); event.preventDefault(); event.stopPropagation();