aboutsummaryrefslogtreecommitdiffstats
path: root/vimiumFrontend.js
diff options
context:
space:
mode:
authorilya2010-03-15 19:20:20 -0700
committerilya2010-03-15 19:20:20 -0700
commit12ac20bf512849e65442fde581b955472052c82b (patch)
tree7a02c126c1b4d82e6ffd2d8e595712169115a381 /vimiumFrontend.js
parent1930b5ff05f755b04b8fb77b40d37e82625bb286 (diff)
downloadvimium-12ac20bf512849e65442fde581b955472052c82b.tar.bz2
Fix a bug where the second modifier key was ignored (due to else-if's). This closes issue 97.
Diffstat (limited to 'vimiumFrontend.js')
-rw-r--r--vimiumFrontend.js21
1 files changed, 15 insertions, 6 deletions
diff --git a/vimiumFrontend.js b/vimiumFrontend.js
index f5c8e552..a28d0810 100644
--- a/vimiumFrontend.js
+++ b/vimiumFrontend.js
@@ -26,6 +26,8 @@ var linkHintCss;
// TODO(philc): This should be pulled from the extension's storage when the page loads.
var currentZoomLevel = 100;
+var hasModifiersRegex = /^<([amc]-)+.>/;
+
function getSetting(key) {
if (!settingPort)
settingPort = chrome.extension.connect({ name: "getSetting" });
@@ -246,12 +248,12 @@ function onKeydown(event) {
{
if (event.shiftKey)
keyChar = keyChar.toUpperCase();
- else if (event.ctrlKey)
- keyChar = "<c-" + keyChar + ">";
- else if (event.metaKey)
- keyChar = "<m-" + keyChar + ">";
- else if (event.altKey)
- keyChar = "<a-" + keyChar + ">";
+ if (event.ctrlKey)
+ keyChar = prependModifier("c", keyChar);
+ if (event.metaKey)
+ keyChar = prependModifier("m", keyChar);
+ if (event.altKey)
+ keyChar = prependModifier("a", keyChar);
}
}
@@ -304,6 +306,13 @@ function onKeydown(event) {
}
}
+function prependModifier(modifier, keyChar) {
+ if (keyChar.search(hasModifiersRegex) == 0)
+ return "<" + modifier + "-" + keyChar.slice(1, keyChar.length - 1) + ">";
+ else
+ return "<" + modifier + "-" + keyChar + ">";
+}
+
function refreshCompletionKeys(completionKeys) {
if (completionKeys)
currentCompletionKeys = completionKeys;