aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/background/actions/operation.js2
-rw-r--r--src/background/tabs.js18
-rw-r--r--src/shared/operations.js1
-rw-r--r--src/shared/settings/default.js1
4 files changed, 20 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
};
diff --git a/src/shared/operations.js b/src/shared/operations.js
index 4c221ba..235793a 100644
--- a/src/shared/operations.js
+++ b/src/shared/operations.js
@@ -38,6 +38,7 @@ export default {
TAB_NEXT: 'tabs.next',
TAB_FIRST: 'tabs.first',
TAB_LAST: 'tabs.last',
+ TAB_PREV_SEL: 'tabs.prevsel',
TAB_RELOAD: 'tabs.reload',
TAB_PIN: 'tabs.pin',
TAB_UNPIN: 'tabs.unpin',
diff --git a/src/shared/settings/default.js b/src/shared/settings/default.js
index 69238e3..44ac5f4 100644
--- a/src/shared/settings/default.js
+++ b/src/shared/settings/default.js
@@ -30,6 +30,7 @@ export default {
"J": { "type": "tabs.next", "count": 1 },
"g0": { "type": "tabs.first" },
"g$": { "type": "tabs.last" },
+ "gl": { "type": "tabs.prevsel" },
"r": { "type": "tabs.reload", "cache": false },
"R": { "type": "tabs.reload", "cache": true },
"zp": { "type": "tabs.pin.toggle" },