aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--linkHints.js9
-rw-r--r--vimiumFrontend.js4
2 files changed, 13 insertions, 0 deletions
diff --git a/linkHints.js b/linkHints.js
index fed190dc..604e91e9 100644
--- a/linkHints.js
+++ b/linkHints.js
@@ -31,6 +31,7 @@ var linkHints = {
*/
init: function() {
this.onKeyDownInMode = this.onKeyDownInMode.bind(this);
+ this.onKeyPressInMode = this.onKeyPressInMode.bind(this);
this.onKeyUpInMode = this.onKeyUpInMode.bind(this);
this.markerMatcher = settings.get('filterLinkHints') == "true" ? filterHints : alphabetHints;
},
@@ -57,6 +58,7 @@ var linkHints = {
this.buildLinkHints();
handlerStack.push({ // modeKeyHandler is declared by vimiumFrontend.js
keydown: this.onKeyDownInMode,
+ keypress: this.onKeyPressInMode,
keyup: this.onKeyUpInMode
});
@@ -217,7 +219,14 @@ var linkHints = {
event.preventDefault();
},
+ onKeyPressInMode: function(event) {
+ return !this.delayMode;
+ },
+
onKeyUpInMode: function(event) {
+ if (this.delayMode)
+ return;
+
if (event.keyCode == keyCodes.shiftKey && this.openLinkModeToggle) {
// Revert toggle on whether to open link in new or current tab.
this.setOpenLinkMode(!this.shouldOpenInNewTab, this.shouldOpenWithQueue, false);
diff --git a/vimiumFrontend.js b/vimiumFrontend.js
index 56c425bb..d485163b 100644
--- a/vimiumFrontend.js
+++ b/vimiumFrontend.js
@@ -337,6 +337,10 @@ function onKeypress(event) {
}
}
+/**
+ * Called whenever we receive a key event. Each individual handler has the option to stop the event's
+ * propagation by returning a falsy value.
+ */
function bubbleEvent(type, event) {
for (var i = handlerStack.length-1; i >= 0; i--) {
// We need to check for existence of handler because the last function call may have caused the release of