diff options
| author | Phil Crosby | 2011-01-30 18:04:45 -0800 |
|---|---|---|
| committer | Phil Crosby | 2011-01-30 18:09:22 -0800 |
| commit | 35d58590b0e09e88c92ca3d49b5ba3b1ff622665 (patch) | |
| tree | 675afce8b9a48553475d8c1921417f6a99639465 | |
| parent | 4f2d27d850c4ea82adc367362bbee41f4943c1a6 (diff) | |
| download | vimium-35d58590b0e09e88c92ca3d49b5ba3b1ff622665.tar.bz2 | |
Make "d" and "u" scroll up and down a page instead of closing and restoring tabs. This implements #274.
The motivation behind this change is that scrolling a page is far more common than
closing a tab, and so those actions should be on a hotkey which doesn't require a modifier.
Once you get used to scrolling without hitting ctrl, you won't be able to go back.
For existing users, this change also adds a custom mapping for them in their preferences to preserve
the old behavior as they upgrade from 1.21 to 1.22.
| -rw-r--r-- | background_page.html | 15 | ||||
| -rw-r--r-- | commands.js | 10 | ||||
| -rw-r--r-- | options.html | 2 |
3 files changed, 24 insertions, 3 deletions
diff --git a/background_page.html b/background_page.html index 87b3c9ad..d98967b4 100644 --- a/background_page.html +++ b/background_page.html @@ -686,6 +686,21 @@ if (localStorage["keyMappings"]) parseCustomKeyMappings(localStorage["keyMappings"]); + // In version 1.22, we changed the mapping for "d" and "u" to be scroll page down/up instead of close + // and restore tab. For existing users, we want to preserve existing behavior for them by adding some + // custom key mappings on their behalf. + if (localStorage.previousVersion == "1.21") { + var customKeyMappings = localStorage["keyMappings"] || ""; + if ((keyToCommandRegistry["d"] || {}).command == "scrollPageDown") + customKeyMappings += "\nmap d removeTab"; + if ((keyToCommandRegistry["u"] || {}).command == "scrollPageUp") + customKeyMappings += "\nmap u restoreTab"; + if (customKeyMappings != "") { + localStorage["keyMappings"] = customKeyMappings; + parseCustomKeyMappings(customKeyMappings); + } + } + populateValidFirstKeys(); populateSingleKeyCommands(); if (shouldShowUpgradeMessage()) diff --git a/commands.js b/commands.js index f2b19467..de70a0a9 100644 --- a/commands.js +++ b/commands.js @@ -99,6 +99,12 @@ function clearKeyMappingsAndSetDefaults() { "zL": "scrollToRight", "<c-e>": "scrollDown", "<c-y>": "scrollUp", + + // scrollPageDown and scrollPageUp are mapped to two keys because they are very common actions so we + // want them to be mapped without a modifier key, but we also want to be faithful to Vim convention which + // has them on ctrl+D and ctrl+U. + "d": "scrollPageDown", + "u": "scrollPageUp", "<c-d>": "scrollPageDown", "<c-u>": "scrollPageUp", "<c-f>": "scrollFullPageDown", @@ -137,8 +143,8 @@ function clearKeyMappingsAndSetDefaults() { "gT": "previousTab", "t": "createTab", - "d": "removeTab", - "u": "restoreTab", + "x": "removeTab", + "X": "restoreTab", "gf": "nextFrame" }; diff --git a/options.html b/options.html index 344fc01d..bfa01450 100644 --- a/options.html +++ b/options.html @@ -83,7 +83,7 @@ "userDefinedLinkHintCss", "keyMappings"]; var postSaveHooks = { - "keyMappings": function (value) { + keyMappings: function (value) { backgroundPage = chrome.extension.getBackgroundPage(); backgroundPage.clearKeyMappingsAndSetDefaults(); backgroundPage.parseCustomKeyMappings(value); |
