mirror of
https://github.com/mdn/webextensions-examples.git
synced 2026-04-16 06:18:35 +02:00
Merge pull request #49 from mdn/tabstabstabs-pinned
Thanks for the review!
This commit is contained in:
@@ -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});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user