diff --git a/lib/ace/lib/event.js b/lib/ace/lib/event.js index c4fff32a..1afca2a2 100644 --- a/lib/ace/lib/event.js +++ b/lib/ace/lib/event.js @@ -227,7 +227,7 @@ exports.addMultiMouseDownListener = function(el, timeouts, eventHandler, callbac function normalizeCommandKeys(callback, e, keyCode) { var hashId = 0; - if (useragent.isOpera && useragent.isMac) { + if ((useragent.isOpera && !("KeyboardEvent" in window)) && useragent.isMac) { hashId = 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0); } else { @@ -268,7 +268,7 @@ function normalizeCommandKeys(callback, e, keyCode) { exports.addCommandKeyListener = function(el, callback) { var addListener = exports.addListener; - if (useragent.isOldGecko || useragent.isOpera) { + if (useragent.isOldGecko || (useragent.isOpera && !("KeyboardEvent" in window))) { // 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 // keydown event was fired once and later on only the keypress event.