diff options
| author | Stephen Blott | 2018-02-13 14:43:25 +0000 | 
|---|---|---|
| committer | Stephen Blott | 2018-02-13 14:43:25 +0000 | 
| commit | 2128ef3a4b6bb989323200578b230dfb1e178c2e (patch) | |
| tree | e3f176db9bc727243c937480a4b62264cf191304 | |
| parent | 43786d3024fa21663480fe76b9a122b3d8325f55 (diff) | |
| download | vimium-2128ef3a4b6bb989323200578b230dfb1e178c2e.tar.bz2 | |
Make the reload command accept a count.
Move the `reload` command to the background page and make it accept a
count prefix.
Fixes #674.
Althought the demand for this is low and the use cases limited, it is a
very vim-ish extension to the existing command.
| -rw-r--r-- | background_scripts/commands.coffee | 2 | ||||
| -rw-r--r-- | background_scripts/main.coffee | 9 | ||||
| -rw-r--r-- | content_scripts/mode_normal.coffee | 5 | 
3 files changed, 11 insertions, 5 deletions
| diff --git a/background_scripts/commands.coffee b/background_scripts/commands.coffee index f3ae3bd9..0573b9c1 100644 --- a/background_scripts/commands.coffee +++ b/background_scripts/commands.coffee @@ -336,7 +336,7 @@ commandDescriptions =    scrollFullPageDown: ["Scroll a full page down"]    scrollFullPageUp: ["Scroll a full page up"] -  reload: ["Reload the page", { noRepeat: true }] +  reload: ["Reload the page", { background: true }]    toggleViewSource: ["View page source", { noRepeat: true }]    copyCurrentUrl: ["Copy the current URL to the clipboard", { noRepeat: true }] diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee index 70d97ca0..78bfce4c 100644 --- a/background_scripts/main.coffee +++ b/background_scripts/main.coffee @@ -235,6 +235,15 @@ BackgroundCommands =      tabIds = BgUtils.tabRecency.getTabsByRecency().filter (tabId) -> tabId != tab.id      if 0 < tabIds.length        selectSpecificTab id: tabIds[(count-1) % tabIds.length] +  reload: ({count, tabId, registryEntry, tab: {windowId}})-> +    bypassCache = registryEntry.options.hard ? false +    chrome.tabs.query {windowId}, (tabs) -> +      position = do -> +        for tab, index in tabs +          return index if tab.id == tabId +      tabs = [tabs[position...]..., tabs[...position]...] +      count = Math.min count, tabs.length +      chrome.tabs.reload tab.id, {bypassCache} for tab in tabs[...count]  # Remove tabs before, after, or either side of the currently active tab  removeTabsRelative = (direction, {tab: activeTab}) -> diff --git a/content_scripts/mode_normal.coffee b/content_scripts/mode_normal.coffee index 1fe0618e..0cfcfc66 100644 --- a/content_scripts/mode_normal.coffee +++ b/content_scripts/mode_normal.coffee @@ -59,10 +59,7 @@ NormalModeCommands =    scrollLeft: (count) -> Scroller.scrollBy "x", -1 * Settings.get("scrollStepSize") * count    scrollRight: (count) -> Scroller.scrollBy "x", Settings.get("scrollStepSize") * count -  # Page state. -  reload: (count, options) -> -    hard = options.registryEntry.options.hard ? false -    window.location.reload(hard) +  # Tab navigation: back, forward.    goBack: (count) -> history.go(-count)    goForward: (count) -> history.go(count) | 
