diff options
Diffstat (limited to 'src/background')
-rw-r--r-- | src/background/actions/operation.js | 2 | ||||
-rw-r--r-- | src/background/tabs.js | 18 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/background/actions/operation.js b/src/background/actions/operation.js index 1e4990c..cfee868 100644 --- a/src/background/actions/operation.js +++ b/src/background/actions/operation.js @@ -27,6 +27,8 @@ const exec = (operation, tab) => { return tabs.selectFirstTab(); case operations.TAB_LAST: return tabs.selectLastTab(); + case operations.TAB_PREV_SEL: + return tabs.selectPrevSelTab(); case operations.TAB_RELOAD: return tabs.reload(tab, operation.cache); case operations.TAB_PIN: diff --git a/src/background/tabs.js b/src/background/tabs.js index d641616..ce48eda 100644 --- a/src/background/tabs.js +++ b/src/background/tabs.js @@ -1,3 +1,6 @@ +// var prevSelTab = null; +var prevSelTab = 0; + const closeTab = (id) => { return browser.tabs.remove(id); }; @@ -93,6 +96,17 @@ const selectLastTab = () => { }); }; +const selectPrevSelTab = () => { + if (prevSelTab != null) { + return browser.tabs.query({ currentWindow: true }).then((tabs) => { + let id = tabs[prevSelTab].id; + return browser.tabs.update(id, { active: true }); + }); + } else { + // some error message + } +}; + const reload = (current, cache) => { return browser.tabs.reload( current.id, @@ -117,6 +131,6 @@ const duplicate = (id) => { export { closeTab, reopenTab, selectAt, selectByKeyword, getCompletions, - selectPrevTab, selectNextTab, selectFirstTab, selectLastTab, reload, - updateTabPinned, toggleTabPinned, duplicate + selectPrevTab, selectNextTab, selectFirstTab, selectLastTab, selectPrevSelTab, + reload, updateTabPinned, toggleTabPinned, duplicate }; |