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); | 
