diff options
| author | Stephen Blott | 2015-01-01 17:40:31 +0000 |
|---|---|---|
| committer | Stephen Blott | 2015-01-01 17:44:09 +0000 |
| commit | c783b653e185166009ba0cdf94c6fdbb442d7f39 (patch) | |
| tree | 740f80600d6a1f2adc545c3b7fbaa5263ebd40ef | |
| parent | 2d047e7ee7e77a02ccb29658ada953a092cee20a (diff) | |
| download | vimium-c783b653e185166009ba0cdf94c6fdbb442d7f39.tar.bz2 | |
Modes; revert and modify normal-mode key handling.
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index 6480d511..b40e9735 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -428,6 +428,7 @@ KeydownEvents = # # Note that some keys will only register keydown events and not keystroke events, e.g. ESC. # + onKeypress = (event) -> keyChar = "" @@ -438,22 +439,21 @@ onKeypress = (event) -> # Enter insert mode when the user enables the native find interface. if (keyChar == "f" && KeyboardUtils.isPrimaryModifierKey(event)) enterInsertModeWithoutShowingIndicator() - return Mode.propagate + return true if (keyChar) if (findMode) handleKeyCharForFindMode(keyChar) - return Mode.suppressPropagation + DomUtils.suppressEvent(event) else if (!isInsertMode() && !findMode) if (isPassKey keyChar) - return Mode.propagate + return handlerStack.passThrough if (currentCompletionKeys.indexOf(keyChar) != -1 or isValidFirstKey(keyChar)) - keyPort.postMessage({ keyChar:keyChar, frameId:frameId }) - return Mode.suppressPropagation + DomUtils.suppressEvent(event) keyPort.postMessage({ keyChar:keyChar, frameId:frameId }) - return Mode.propagate + return true onKeydown = (event) -> keyChar = "" @@ -493,39 +493,38 @@ onKeydown = (event) -> event.srcElement.blur() exitInsertMode() DomUtils.suppressEvent event - KeydownEvents.push event + handledKeydownEvents.push event else if (findMode) if (KeyboardUtils.isEscape(event)) handleEscapeForFindMode() + DomUtils.suppressEvent event KeydownEvents.push event - return Mode.suppressPropagation else if (event.keyCode == keyCodes.backspace || event.keyCode == keyCodes.deleteKey) handleDeleteForFindMode() + DomUtils.suppressEvent event KeydownEvents.push event - return Mode.suppressPropagation else if (event.keyCode == keyCodes.enter) handleEnterForFindMode() + DomUtils.suppressEvent event KeydownEvents.push event - return Mode.suppressPropagation else if (!modifiers) + DomUtils.suppressPropagation(event) KeydownEvents.push event - return Mode.suppressPropagation else if (isShowingHelpDialog && KeyboardUtils.isEscape(event)) hideHelpDialog() + DomUtils.suppressEvent event KeydownEvents.push event - return Mode.suppressPropagation else if (!isInsertMode() && !findMode) if (keyChar) if (currentCompletionKeys.indexOf(keyChar) != -1 or isValidFirstKey(keyChar)) + DomUtils.suppressEvent event KeydownEvents.push event - keyPort.postMessage({ keyChar:keyChar, frameId:frameId }) - return Mode.suppressPropagation keyPort.postMessage({ keyChar:keyChar, frameId:frameId }) @@ -533,7 +532,7 @@ onKeydown = (event) -> keyPort.postMessage({ keyChar:"<ESC>", frameId:frameId }) else if isPassKey KeyboardUtils.getKeyChar(event) - return Mode.propagate + return undefined # Added to prevent propagating this event to other listeners if it's one that'll trigger a Vimium command. # The goal is to avoid the scenario where Google Instant Search uses every keydown event to dump us @@ -545,14 +544,14 @@ onKeydown = (event) -> if (keyChar == "" && !isInsertMode() && (currentCompletionKeys.indexOf(KeyboardUtils.getKeyChar(event)) != -1 || isValidFirstKey(KeyboardUtils.getKeyChar(event)))) - # Suppress chrome propagation of this event, but drop through, and continue handler-stack processing. - DomUtils.suppressPropagation event + DomUtils.suppressPropagation(event) KeydownEvents.push event - return Mode.propagate + return true onKeyup = (event) -> - if KeydownEvents.pop event then Mode.suppressPropagation else Mode.propagate + DomUtils.suppressPropagation(event) if KeydownEvents.pop event + return true checkIfEnabledForUrl = -> url = window.location.toString() |
