diff options
| -rw-r--r-- | README.md | 5 | ||||
| -rw-r--r-- | content_scripts/scroller.coffee | 11 | ||||
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 4 | ||||
| -rw-r--r-- | lib/dom_utils.coffee | 4 | ||||
| -rw-r--r-- | manifest.json | 2 | ||||
| -rw-r--r-- | pages/options.html | 18 |
6 files changed, 28 insertions, 16 deletions
@@ -140,6 +140,11 @@ Please see [CONTRIBUTING.md](https://github.com/philc/vimium/blob/master/CONTRIB Release Notes ------------- +1.49 (2014-12-16) + +- An option to toggle smooth scrolling. +- Make Vimium work on older versions of Chrome. + 1.46, 1.47, 1.48 (2014-12-15) - Site-specific excluded keys: you can disable some Vimium key bindings on sites like gmail.com, so you can use the key bindings provided by the site itself. diff --git a/content_scripts/scroller.coffee b/content_scripts/scroller.coffee index a2617289..09470158 100644 --- a/content_scripts/scroller.coffee +++ b/content_scripts/scroller.coffee @@ -4,6 +4,13 @@ # activatedElement = null +# Return 0, -1 or 1: the sign of the argument. +getSign = (val) -> + if not val + 0 + else + if val < 0 then -1 else 1 + scrollProperties = x: { axisName: 'scrollLeft' @@ -63,7 +70,7 @@ doesScroll = (element, direction, amount, factor) -> # we're definitely scrolling forwards, so any positive value will do for delta. In the latter, we're # definitely scrolling backwards, so a delta of -1 will do. For absolute scrolls, factor is always 1. delta = factor * getDimension(element, direction, amount) || -1 - delta = Math.sign delta # 1 or -1 + delta = getSign delta # 1 or -1 performScroll(element, direction, delta) and performScroll(element, direction, -delta) # From element and its parents, find the first which we should scroll and which does scroll. @@ -136,7 +143,7 @@ CoreScroller = myKeyIsStillDown = => @time == activationTime and @keyIsDown # Store amount's sign and make amount positive; the arithmetic is clearer when amount is positive. - sign = Math.sign amount + sign = getSign amount amount = Math.abs amount # Initial intended scroll duration (in ms). We allow a bit longer for longer scrolls. diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index eaf66b72..e4680ff7 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -246,8 +246,8 @@ setScrollPosition = (scrollX, scrollY) -> window.focusThisFrame = (shouldHighlight) -> if window.innerWidth < 3 or window.innerHeight < 3 # This frame is too small to focus. Cancel and tell the background frame to focus the next one instead. - # NOTE(smblott) We assume that there is at least one frame large enough to focus. - # See #1317. + # This affects sites like Google Inbox, which have many tiny iframes. See #1317. + # Here we're assuming that there is at least one frame large enough to focus. chrome.runtime.sendMessage({ handler: "nextFrame", frameId: frameId }) return window.focus() diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee index 2caaa00e..8db71001 100644 --- a/lib/dom_utils.coffee +++ b/lib/dom_utils.coffee @@ -99,11 +99,11 @@ DomUtils = # # The html5 input types that should use simulateSelect are: # ["date", "datetime", "datetime-local", "email", "month", "number", "password", "range", "search", - # "submit", "tel", "text", "time", "url", "week"] + # "tel", "text", "time", "url", "week"] # An unknown type will be treated the same as "text", in the same way that the browser does. # isSelectable: (element) -> - unselectableTypes = ["button", "checkbox", "color", "file", "hidden", "image", "radio", "reset"] + unselectableTypes = ["button", "checkbox", "color", "file", "hidden", "image", "radio", "reset", "submit"] (element.nodeName.toLowerCase() == "input" && unselectableTypes.indexOf(element.type) == -1) || element.nodeName.toLowerCase() == "textarea" diff --git a/manifest.json b/manifest.json index 67704677..4996d93f 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Vimium", - "version": "1.48", + "version": "1.49", "description": "The Hacker's Browser. Vimium provides keyboard shortcuts for navigation and control in the spirit of Vim.", "icons": { "16": "icons/icon16.png", "48": "icons/icon48.png", diff --git a/pages/options.html b/pages/options.html index bc4454cd..8e685304 100644 --- a/pages/options.html +++ b/pages/options.html @@ -352,6 +352,15 @@ unmapAll <tr> <td class="caption" verticalAlign="top">Miscellaneous<br/>options</td> <td verticalAlign="top" class="booleanOption"> + <label> + <input id="smoothScroll" type="checkbox"/> + Use smooth scrolling + </label> + </td> + </tr> + <tr> + <td class="caption"></td> + <td verticalAlign="top" class="booleanOption"> <div class="help"> <div class="example"> In link-hint mode, this option lets you also select a link by typing its text. @@ -363,15 +372,6 @@ unmapAll </label> </td> </tr> - <tr style="display:none"> - <td class="caption"></td> - <td verticalAlign="top" class="booleanOption"> - <label> - <input id="smoothScroll" type="checkbox"/> - Use smooth scrolling - </label> - </td> - </tr> <tr> <td class="caption"></td> <td verticalAlign="top" class="booleanOption"> |
