From 845a6d4e98659951b77ead3767c172a7671be99e Mon Sep 17 00:00:00 2001 From: nightwing Date: Fri, 23 Jan 2015 17:16:41 +0400 Subject: [PATCH 1/2] make detection of altGr more robust --- lib/ace/lib/event.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/ace/lib/event.js b/lib/ace/lib/event.js index b9f3ebe4..06932d3c 100644 --- a/lib/ace/lib/event.js +++ b/lib/ace/lib/event.js @@ -241,12 +241,11 @@ function normalizeCommandKeys(callback, e, keyCode) { if (keyCode === 18 || keyCode === 17) { var location = "location" in e ? e.location : e.keyLocation; if (keyCode === 17 && location === 1) { - ts = e.timeStamp; + if (pressedKeys[keyCode] == 1) + ts = e.timeStamp; } else if (keyCode === 18 && hashId === 3 && location === 2) { - var dt = -ts; - ts = e.timeStamp; - dt += ts; - if (dt < 3) + var dt = e.timestamp - ts; + if (dt < 50) pressedKeys.altGr = true; } } @@ -309,7 +308,7 @@ exports.addCommandKeyListener = function(el, callback) { var lastDefaultPrevented = null; addListener(el, "keydown", function(e) { - pressedKeys[e.keyCode] = true; + pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1; var result = normalizeCommandKeys(callback, e, e.keyCode); lastDefaultPrevented = e.defaultPrevented; return result; From b93d7727202a134172f4b865fc8151c1abdafae7 Mon Sep 17 00:00:00 2001 From: nightwing Date: Fri, 23 Jan 2015 17:20:29 +0400 Subject: [PATCH 2/2] do not overwrite ctrl-alt-0 on windows since that is used on German keyboard --- lib/ace/commands/default_commands.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ace/commands/default_commands.js b/lib/ace/commands/default_commands.js index c5d34aae..f121adb6 100644 --- a/lib/ace/commands/default_commands.js +++ b/lib/ace/commands/default_commands.js @@ -119,7 +119,7 @@ exports.commands = [{ readOnly: true }, { name: "foldall", - bindKey: bindKey("Ctrl-Alt-0", "Ctrl-Command-Option-0"), + bindKey: bindKey(null, "Ctrl-Command-Option-0"), exec: function(editor) { editor.session.foldAll(); }, scrollIntoView: "center", readOnly: true