diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2017-11-05 23:41:38 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-05 23:41:38 +0000 |
commit | 256820f78d0450c55a32557eca13294ab9fdf80f (patch) | |
tree | 9851c73fc77d9d5bd8e9c91f754995de2b3d56e5 /src/background | |
parent | b3b017a123516096dd7be05695f7a71da3b808cc (diff) | |
parent | 87b8280d4bdcaddeac1aff95d9354e1954b7c25a (diff) |
Merge pull request #124 from JiaboHou/pin-tab
added support for pinning/unpinning tabs
Diffstat (limited to 'src/background')
-rw-r--r-- | src/background/actions/operation.js | 10 | ||||
-rw-r--r-- | src/background/tabs.js | 14 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/background/actions/operation.js b/src/background/actions/operation.js index a5094c0..d0caf80 100644 --- a/src/background/actions/operation.js +++ b/src/background/actions/operation.js @@ -10,6 +10,9 @@ const sendConsoleShowCommand = (tab, command) => { }); }; +// This switch statement is only gonna get longer as more +// features are added, so disable complexity check +/* eslint-disable complexity */ const exec = (operation, tab) => { switch (operation.type) { case operations.TAB_CLOSE: @@ -26,6 +29,12 @@ const exec = (operation, tab) => { return tabs.selectLastTab(); case operations.TAB_RELOAD: return tabs.reload(tab, operation.cache); + case operations.TAB_PIN: + return tabs.updateTabPinned(tab, true); + case operations.TAB_UNPIN: + return tabs.updateTabPinned(tab, false); + case operations.TAB_TOGGLE_PINNED: + return tabs.toggleTabPinned(tab); case operations.ZOOM_IN: return zooms.zoomIn(); case operations.ZOOM_OUT: @@ -58,5 +67,6 @@ const exec = (operation, tab) => { return Promise.resolve(); } }; +/* eslint-enable complexity */ export { exec }; diff --git a/src/background/tabs.js b/src/background/tabs.js index 020c826..23b3b7b 100644 --- a/src/background/tabs.js +++ b/src/background/tabs.js @@ -100,7 +100,19 @@ const reload = (current, cache) => { ); }; +const updateTabPinned = (current, pinned) => { + return browser.tabs.query({ currentWindow: true, active: true }) + .then(() => { + return browser.tabs.update(current.id, { pinned: pinned }); + }); +}; + +const toggleTabPinned = (current) => { + updateTabPinned(current, !current.pinned); +}; + export { closeTab, reopenTab, selectAt, selectByKeyword, getCompletions, - selectPrevTab, selectNextTab, selectFirstTab, selectLastTab, reload + selectPrevTab, selectNextTab, selectFirstTab, selectLastTab, reload, + updateTabPinned, toggleTabPinned }; |