handle pinned tabs correctly

This commit is contained in:
Will Bamberg
2016-03-22 13:59:41 -07:00
parent 12ca9afa94
commit ef204d46ab

View File

@@ -1,23 +1,39 @@
function firstUnpinnedTab(tabs) {
for (var tab of tabs) {
if (!tab.pinned) {
return tab.index;
}
}
}
document.addEventListener("click", function(e) {
function callOnActiveTab(callback) {
chrome.tabs.query({}, function(tabs) {
for (var tab of tabs) {
if (tab.active) {
callback(tab);
callback(tab, tabs);
}
}
});
}
if (e.target.id === "tabs-move-beginning") {
callOnActiveTab((tab) => {
chrome.tabs.move([tab.id], {index: 0});
callOnActiveTab((tab, tabs) => {
var destination = 0;
if (!tab.pinned) {
destination = firstUnpinnedTab(tabs);
}
chrome.tabs.move([tab.id], {index: destination});
});
}
if (e.target.id === "tabs-move-end") {
callOnActiveTab((tab) => {
chrome.tabs.move([tab.id], {index: -1});
callOnActiveTab((tab, tabs) => {
var destination = -1;
if (tab.pinned) {
destination = firstUnpinnedTab(tabs);
}
chrome.tabs.move([tab.id], {index: destination});
});
}