aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTING.md2
-rw-r--r--README.md5
-rw-r--r--content_scripts/link_hints.coffee7
3 files changed, 12 insertions, 2 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 034a287e..27db315c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -37,7 +37,7 @@ Our tests use [shoulda.js](https://github.com/philc/shoulda.js) and [PhantomJS](
1. `git submodule update --init --recursive` -- this pulls in shoulda.js.
1. Install [PhantomJS](http://phantomjs.org/download.html).
- 1. `npm install path` to install the [Node.js Path module](http://nodejs.org/api/path.html), used by the test runner.
+ 1. `npm install path@0.11` to install the [Node.js Path module](http://nodejs.org/api/path.html), used by the test runner.
1. `npm install util` to install the [util module](https://www.npmjs.com/package/util), used by the tests.
1. `cake build` to compile `*.coffee` to `*.js`
1. `cake test` to run the tests.
diff --git a/README.md b/README.md
index b8558692..fe3475be 100644
--- a/README.md
+++ b/README.md
@@ -153,6 +153,11 @@ Please see [CONTRIBUTING.md](https://github.com/philc/vimium/blob/master/CONTRIB
Release Notes
-------------
+Next version (not yet released)
+
+- Bug fixes:
+ - Fix endless scrolling (#1911).
+
1.53 (2015-09-25)
- Vimium now works on the new-tab page for Chrome 47.
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee
index bf120629..8fc1446b 100644
--- a/content_scripts/link_hints.coffee
+++ b/content_scripts/link_hints.coffee
@@ -304,11 +304,16 @@ class LinkHintsMode
when keyCodes.ctrlKey
@setOpenLinkMode(if @mode is OPEN_IN_NEW_FG_TAB then OPEN_IN_NEW_BG_TAB else OPEN_IN_NEW_FG_TAB)
- handlerStack.push
+ handlerId = handlerStack.push
keyup: (event) =>
if event.keyCode == keyCode
handlerStack.remove()
@setOpenLinkMode previousMode if @isActive
+ true # Continue bubbling the event.
+
+ # For some (unknown) reason, we don't always receive the keyup event needed to remove this handler.
+ # Therefore, we ensure that it's always removed when hint mode exits. See #1911 and #1926.
+ @hintMode.onExit -> handlerStack.remove handlerId
else if event.keyCode in [ keyCodes.backspace, keyCodes.deleteKey ]
if @markerMatcher.popKeyChar()