Fixed tabs appearing on the pinned tab container

This commit is contained in:
mr. M
2025-02-07 19:48:45 +01:00
parent d2477b5f8a
commit 302331bc7d

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857a82ff94c 100644
index 8aeb244ffca9f48661805f5b7d860b5896055562..1d630f0f402610e70e4e17f11813fddbd141cb9e 100644
--- a/browser/components/tabbrowser/content/tabs.js
+++ b/browser/components/tabbrowser/content/tabs.js
@@ -94,7 +94,7 @@
@@ -101,7 +101,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
) {
delete draggedTab._dragData;
return;
@@ -1512,9 +1525,18 @@
@@ -1512,9 +1525,19 @@
}
this.#allTabs = [
@@ -109,19 +109,20 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
+ ...document.getElementById("zen-essentials-container").children, ...this.verticalPinnedTabsContainer.children,
...children,
];
+ const lastPinnedTabIdx = gBrowser.pinnedTabCount;
+ for (let i = 0; i < this.#allTabs.length; i++) {
+ // add glance tabs (tabs inside tabs) to the list
+ const glanceTab = this.#allTabs[i].querySelector("tab[zen-glance-tab]");
+ if (glanceTab) {
+ // insert right after the parent tab
+ this.#allTabs.splice(i + 1, 0, glanceTab);
+ this.#allTabs.splice(Math.min(i + 1, lastPinnedTabIdx), 0, glanceTab);
+ i++;
+ }
+ }
return this.#allTabs;
}
@@ -1593,6 +1615,7 @@
@@ -1593,6 +1616,7 @@
}
this.#focusableItems = [
@@ -129,7 +130,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
...verticalPinnedTabsContainer.children,
...focusableItems,
];
@@ -1617,8 +1640,8 @@
@@ -1617,8 +1641,8 @@
#isContainerVerticalPinnedExpanded(tab) {
return (
this.verticalMode &&
@@ -140,7 +141,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
);
}
@@ -1816,7 +1839,7 @@
@@ -1816,7 +1840,7 @@
let rect = ele => {
return window.windowUtils.getBoundsWithoutFlushing(ele);
};
@@ -149,7 +150,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
if (tab && rect(tab).width <= this._tabClipWidth) {
this.setAttribute("closebuttons", "activetab");
} else {
@@ -1832,6 +1855,7 @@
@@ -1832,6 +1856,7 @@
this.arrowScrollbox.ensureElementIsVisible(selectedTab, aInstant);
}
@@ -157,7 +158,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
selectedTab._notselectedsinceload = false;
}
@@ -1843,7 +1867,7 @@
@@ -1843,7 +1868,7 @@
return;
}
@@ -166,7 +167,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
if (!tabs.length) {
return;
}
@@ -1879,7 +1903,7 @@
@@ -1879,7 +1904,7 @@
if (isEndTab && !this._hasTabTempMaxWidth) {
return;
}
@@ -175,7 +176,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
// Force tabs to stay the same width, unless we're closing the last tab,
// which case we need to let them expand just enough so that the overall
// tabbar width is the same.
@@ -1894,7 +1918,7 @@
@@ -1894,7 +1919,7 @@
let tabsToReset = [];
for (let i = numPinned; i < tabs.length; i++) {
let tab = tabs[i];
@@ -184,7 +185,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
if (!isEndTab) {
// keep tabs the same width
tab.style.transition = "none";
@@ -1963,13 +1987,13 @@
@@ -1963,13 +1988,13 @@
let verticalTabsContainer = document.getElementById(
"vertical-pinned-tabs-container"
);
@@ -202,7 +203,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
}
}
@@ -1992,8 +2016,8 @@
@@ -1992,8 +2017,8 @@
}
_positionPinnedTabs() {
@@ -213,7 +214,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
let absPositionHorizontalTabs =
this.overflowing && tabs.length > numPinned && numPinned > 0;
@@ -2074,7 +2098,7 @@
@@ -2074,7 +2099,7 @@
return;
}
@@ -222,7 +223,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
let directionX = screenX > dragData.animLastScreenX;
let directionY = screenY > dragData.animLastScreenY;
@@ -2257,9 +2281,9 @@
@@ -2257,9 +2282,9 @@
}
let pinned = draggedTab.pinned;
@@ -235,7 +236,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
pinned ? numPinned : undefined
);
@@ -2502,8 +2526,9 @@
@@ -2502,8 +2527,9 @@
);
}
@@ -247,7 +248,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
return;
}
@@ -2668,9 +2693,9 @@
@@ -2668,9 +2694,9 @@
function newIndex(aTab, index) {
// Don't allow mixing pinned and unpinned tabs.
if (aTab.pinned) {
@@ -259,7 +260,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
}
}
@@ -2754,7 +2779,7 @@
@@ -2754,7 +2780,7 @@
}
_notifyBackgroundTab(aTab) {
@@ -268,7 +269,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
return;
}
@@ -2772,12 +2797,14 @@
@@ -2772,12 +2798,14 @@
selectedTab = {
left: selectedTab.left,
right: selectedTab.right,
@@ -284,7 +285,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
selectedTab,
];
})
@@ -2794,8 +2821,11 @@
@@ -2794,8 +2822,11 @@
delete this._lastTabToScrollIntoView;
// Is the new tab already completely visible?
if (
@@ -298,7 +299,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..ad28d73fe7cc6eadc4b4724c75d54857
) {
return;
}
@@ -2803,21 +2833,29 @@
@@ -2803,21 +2834,29 @@
if (this.arrowScrollbox.smoothScroll) {
// Can we make both the new tab and the selected tab completely visible?
if (