From d7ad494a3028d4d7b408bc47fbee1b17ce754600 Mon Sep 17 00:00:00 2001 From: Mike Taylor Date: Wed, 27 Jun 2012 13:00:16 -0500 Subject: [PATCH 1/2] Add "KeyboardEvent" in window check for old Opera. We've added support for DOM3 Keyboard Events (and cleaned up things) generally--so this workaround won't be needed when those changes land in a stable version of Opera. This change allows older versions of Opera to continue working. --- lib/ace/lib/event.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ace/lib/event.js b/lib/ace/lib/event.js index c4fff32a..bbd35d30 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. From d388fe9a8525e75655b097a51ec78319b0bd2e63 Mon Sep 17 00:00:00 2001 From: Mike Taylor Date: Thu, 28 Jun 2012 14:57:06 -0500 Subject: [PATCH 2/2] Oops, forgot some grouping parens. --- lib/ace/lib/event.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ace/lib/event.js b/lib/ace/lib/event.js index bbd35d30..1afca2a2 100644 --- a/lib/ace/lib/event.js +++ b/lib/ace/lib/event.js @@ -268,7 +268,7 @@ function normalizeCommandKeys(callback, e, keyCode) { exports.addCommandKeyListener = function(el, callback) { var addListener = exports.addListener; - if (useragent.isOldGecko || useragent.isOpera && !("KeyboardEvent" in window)) { + 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.