diff options
| author | Ilya Sukhar | 2010-10-20 22:51:41 -0700 |
|---|---|---|
| committer | Ilya Sukhar | 2010-10-20 22:51:41 -0700 |
| commit | db0073f1b707aa48557f8d8347af66a48e3293a3 (patch) | |
| tree | d4c5bb6aa5d4c8f521ca34d00d5b235f13110f72 | |
| parent | 828721c7913a2f334f6b6bac08de74c980c38ef5 (diff) | |
| download | vimium-db0073f1b707aa48557f8d8347af66a48e3293a3.tar.bz2 | |
Refactor onKeypress and onKeydown a bit.
| -rw-r--r-- | vimiumFrontend.js | 65 |
1 files changed, 27 insertions, 38 deletions
diff --git a/vimiumFrontend.js b/vimiumFrontend.js index 75225a78..19e2e0a2 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -320,32 +320,26 @@ function onKeypress(event) { keyChar = String.fromCharCode(event.charCode); // Enter insert mode when the user enables the native find interface. - if (keyChar == "f" && isPrimaryModifierKey(event)) - { + if (keyChar == "f" && isPrimaryModifierKey(event)) { enterInsertMode(); return; } - } - if (findMode) - { - if (keyChar) - { - handleKeyCharForFindMode(keyChar); + if (keyChar) { + if (findMode) { + handleKeyCharForFindMode(keyChar); - // Don't let the space scroll us if we're searching. - if (event.keyCode == keyCodes.space) - event.preventDefault(); - } - } + // Don't let the space scroll us if we're searching. + if (event.keyCode == keyCodes.space) + event.preventDefault(); + } else if (!insertMode && !findMode) { + if (currentCompletionKeys.indexOf(keyChar) != -1) { + event.preventDefault(); + event.stopPropagation(); + } - else if (!insertMode && !findMode) { - if (keyChar) { - if (currentCompletionKeys.indexOf(keyChar) != -1) { - event.preventDefault(); - event.stopPropagation(); + keyPort.postMessage({keyChar:keyChar, frameId:frameId}); } - keyPort.postMessage({keyChar:keyChar, frameId:frameId}); } } } @@ -355,36 +349,32 @@ function onKeydown(event) { if (linkHintsModeActivated) return; - + // handle modifiers being pressed.don't handle shiftKey alone (to avoid / being interpreted as ? - if (event.metaKey && event.keyCode > 31 || event.ctrlKey && event.keyCode > 31 || event.altKey && event.keyCode > 31) - { - if (event.keyCode > 31) + if (event.metaKey && event.keyCode > 31 || event.ctrlKey && event.keyCode > 31 || event.altKey && event.keyCode > 31) { + keyChar = getKeyChar(event); + + if (keyChar != "") // Again, ignore just modifiers. Maybe this should replace the keyCode > 31 condition. { - keyChar = getKeyChar(event); - - if (keyChar != "") // Again, ignore just modifiers. Maybe this should replace the keyCode > 31 condition. - { - var modifiers = []; - - if (event.shiftKey) + var modifiers = []; + + if (event.shiftKey) keyChar = keyChar.toUpperCase(); - if (event.metaKey) + if (event.metaKey) modifiers.push("m"); - if (event.ctrlKey) + if (event.ctrlKey) modifiers.push("c"); - if (event.altKey) + if (event.altKey) modifiers.push("a"); - for (var i in modifiers) + for (var i in modifiers) keyChar = modifiers[i] + "-" + keyChar; - if (modifiers.length > 0 || keyChar.length > 1) + if (modifiers.length > 0 || keyChar.length > 1) keyChar = "<" + keyChar + ">"; - } } } - + if (insertMode && isEscape(event)) { // Note that we can't programmatically blur out of Flash embeds from Javascript. @@ -419,7 +409,6 @@ function onKeydown(event) { } keyPort.postMessage({keyChar:keyChar, frameId:frameId}); - } else if (isEscape(event)) { keyPort.postMessage({keyChar:"<ESC>", frameId:frameId}); |
