diff --git a/tabs-tabs-tabs/tabs.js b/tabs-tabs-tabs/tabs.js index 38919e6..73d730d 100644 --- a/tabs-tabs-tabs/tabs.js +++ b/tabs-tabs-tabs/tabs.js @@ -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}); }); }