diff options
| author | ilya | 2010-03-15 19:20:20 -0700 | 
|---|---|---|
| committer | ilya | 2010-03-15 19:20:20 -0700 | 
| commit | 12ac20bf512849e65442fde581b955472052c82b (patch) | |
| tree | 7a02c126c1b4d82e6ffd2d8e595712169115a381 /vimiumFrontend.js | |
| parent | 1930b5ff05f755b04b8fb77b40d37e82625bb286 (diff) | |
| download | vimium-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.js | 21 | 
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;  | 
