diff options
Diffstat (limited to 'background_scripts/main.coffee')
| -rw-r--r-- | background_scripts/main.coffee | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee index 93ef1449..a8f851c0 100644 --- a/background_scripts/main.coffee +++ b/background_scripts/main.coffee @@ -290,6 +290,30 @@ BackgroundCommands = chrome.tabs.sendMessage(tab.id, { name: "focusFrame", frameId: frames[newIndex].id, highlight: true })) + closeTabsToLeft: -> removeTabsRelative "before" + closeTabsToRight: -> removeTabsRelative "after" + closeOtherTabs: -> removeTabsRelative "both" + +# Remove tabs before, after, or either side of the currently active tab +removeTabsRelative = (direction) -> + chrome.tabs.query {currentWindow: true}, (tabs) -> + chrome.tabs.query {currentWindow: true, active: true}, (activeTabArr) -> + activeTabIndex = activeTabArr[0].index + + switch direction + when "before" + shouldDelete = (index) -> index < activeTabIndex + when "after" + shouldDelete = (index) -> index > activeTabIndex + when "both" + shouldDelete = (index) -> index != activeTabIndex + + removeTabIds = [] + for tab in tabs + if not tab.pinned and shouldDelete tab.index + removeTabIds.push tab.id + chrome.tabs.remove removeTabIds + # Selects a tab before or after the currently selected tab. # - direction: "next", "previous", "first" or "last". selectTab = (callback, direction) -> |
