aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md5
-rw-r--r--content_scripts/scroller.coffee11
-rw-r--r--content_scripts/vimium_frontend.coffee4
-rw-r--r--lib/dom_utils.coffee4
-rw-r--r--manifest.json2
-rw-r--r--pages/options.html18
6 files changed, 28 insertions, 16 deletions
diff --git a/README.md b/README.md
index 8256f9f7..b39bf0c3 100644
--- a/README.md
+++ b/README.md
@@ -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">