diff options
| -rw-r--r-- | CONTRIBUTING.md | 2 | ||||
| -rw-r--r-- | README.md | 5 | ||||
| -rw-r--r-- | content_scripts/link_hints.coffee | 7 |
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. @@ -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() |
