diff --git a/tabs-tabs-tabs/tabs.js b/tabs-tabs-tabs/tabs.js index 38919e6..0ab39bd 100644 --- a/tabs-tabs-tabs/tabs.js +++ b/tabs-tabs-tabs/tabs.js @@ -1,23 +1,40 @@ +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) { + chrome.tabs.query({currentWindow: true}, 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 index = 0; + if (!tab.pinned) { + index = firstUnpinnedTab(tabs); + } + chrome.tabs.move([tab.id], {index}); }); } if (e.target.id === "tabs-move-end") { - callOnActiveTab((tab) => { - chrome.tabs.move([tab.id], {index: -1}); + callOnActiveTab((tab, tabs) => { + var index = -1; + if (tab.pinned) { + var lastPinnedTab = Math.max(0, firstUnpinnedTab(tabs) - 1); + index = lastPinnedTab; + } + chrome.tabs.move([tab.id], {index}); }); }