Keep previous selected tab

jh-changes
Daniel Campoverde 7 years ago
parent 50cc126e08
commit 92a1e170e1
  1. 30
      src/background/tabs.js

@ -1,4 +1,3 @@
// var prevSelTab = null;
var prevSelTab = 0; var prevSelTab = 0;
const closeTab = (id) => { const closeTab = (id) => {
@ -61,6 +60,10 @@ const getCompletions = (keyword) => {
}; };
const selectPrevTab = (current, count) => { const selectPrevTab = (current, count) => {
browser.tabs.query({ currentWindow: true, active: true }).then((tabs) => {
prevSelTab = tabs[0].id;
});
return browser.tabs.query({ currentWindow: true }).then((tabs) => { return browser.tabs.query({ currentWindow: true }).then((tabs) => {
if (tabs.length < 2) { if (tabs.length < 2) {
return; return;
@ -72,6 +75,10 @@ const selectPrevTab = (current, count) => {
}; };
const selectNextTab = (current, count) => { const selectNextTab = (current, count) => {
browser.tabs.query({ currentWindow: true, active: true }).then((tabs) => {
prevSelTab = tabs[0].id;
});
return browser.tabs.query({ currentWindow: true }).then((tabs) => { return browser.tabs.query({ currentWindow: true }).then((tabs) => {
if (tabs.length < 2) { if (tabs.length < 2) {
return; return;
@ -83,6 +90,10 @@ const selectNextTab = (current, count) => {
}; };
const selectFirstTab = () => { const selectFirstTab = () => {
browser.tabs.query({ currentWindow: true, active: true }).then((tabs) => {
prevSelTab = tabs[0].id;
});
return browser.tabs.query({ currentWindow: true }).then((tabs) => { return browser.tabs.query({ currentWindow: true }).then((tabs) => {
let id = tabs[0].id; let id = tabs[0].id;
return browser.tabs.update(id, { active: true }); return browser.tabs.update(id, { active: true });
@ -90,6 +101,10 @@ const selectFirstTab = () => {
}; };
const selectLastTab = () => { const selectLastTab = () => {
browser.tabs.query({ currentWindow: true, active: true }).then((tabs) => {
prevSelTab = tabs[0].id;
});
return browser.tabs.query({ currentWindow: true }).then((tabs) => { return browser.tabs.query({ currentWindow: true }).then((tabs) => {
let id = tabs[tabs.length - 1].id; let id = tabs[tabs.length - 1].id;
return browser.tabs.update(id, { active: true }); return browser.tabs.update(id, { active: true });
@ -97,14 +112,15 @@ const selectLastTab = () => {
}; };
const selectPrevSelTab = () => { const selectPrevSelTab = () => {
if (prevSelTab != null) { var tmpPrevSelTab = null;
browser.tabs.query({ currentWindow: true, active: true }).then((tabs) => {
tmpPrevSelTab = tabs[0].id;
});
return browser.tabs.query({ currentWindow: true }).then((tabs) => { return browser.tabs.query({ currentWindow: true }).then((tabs) => {
let id = tabs[prevSelTab].id; browser.tabs.update(prevSelTab, { active: true });
return browser.tabs.update(id, { active: true }); prevSelTab = tmpPrevSelTab;
}); });
} else {
// some error message
}
}; };
const reload = (current, cache) => { const reload = (current, cache) => {