aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts
diff options
context:
space:
mode:
authorStephen Blott2015-01-01 17:40:31 +0000
committerStephen Blott2015-01-01 17:44:09 +0000
commitc783b653e185166009ba0cdf94c6fdbb442d7f39 (patch)
tree740f80600d6a1f2adc545c3b7fbaa5263ebd40ef /content_scripts
parent2d047e7ee7e77a02ccb29658ada953a092cee20a (diff)
downloadvimium-c783b653e185166009ba0cdf94c6fdbb442d7f39.tar.bz2
Modes; revert and modify normal-mode key handling.
Diffstat (limited to 'content_scripts')
-rw-r--r--content_scripts/vimium_frontend.coffee37
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()