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