diff options
| author | Stephen Blott | 2014-12-17 07:39:37 +0000 | 
|---|---|---|
| committer | Stephen Blott | 2014-12-17 07:39:37 +0000 | 
| commit | c7213f8a12ff75c00da3c7bdadb38239b096cb19 (patch) | |
| tree | 58f3a4ef7bd9f4fc62ebbaeea166020577c6352a | |
| parent | db4b0c952fdf8fff517a4393cd07b04ecffb2ead (diff) | |
| parent | 09f8527915eae8067072277e2b161493ede359cd (diff) | |
| download | vimium-c7213f8a12ff75c00da3c7bdadb38239b096cb19.tar.bz2 | |
Merge branch 'master' into post-1.46
| -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"> | 
