feat: Correctly mark tab visibility inside active folders, b=no-bug, c=common, folders

This commit is contained in:
mr. m
2026-03-02 09:58:49 +01:00
parent 3044b409fa
commit bcdb905ad6
3 changed files with 11 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
index 836bee14d2b63604688ebe477a5d915a5e99b305..a675aed711560b4a44604fc17478cffa7fb68439 100644
index 836bee14d2b63604688ebe477a5d915a5e99b305..53b6cb827b1199b314b0e6543055fe7b074b0dfa 100644
--- a/browser/components/tabbrowser/content/tab.js
+++ b/browser/components/tabbrowser/content/tab.js
@@ -21,6 +21,7 @@
@@ -65,11 +65,11 @@ index 836bee14d2b63604688ebe477a5d915a5e99b305..a675aed711560b4a44604fc17478cffa
+ return false;
+ }
+ // Selected tabs are always visible
+ if (this.selected || this.multiselected || this.hasAttribute("folder-active")) return true;
+ if (this.selected || this.multiselected) return true;
+ // Recursively check all parent groups
+ let currentParent = this.group;
+ while (currentParent) {
+ if (currentParent.collapsed) {
+ if (currentParent.collapsed && !currentParent.activeTabs.includes(this)) {
+ return false;
+ }
+ currentParent = currentParent.group;

View File

@@ -30,7 +30,7 @@ panel[type="arrow"]:not(#feature-callout) {
}
@media (-moz-platform: macos) {
&:where([nativepopover="true"]) {
&:where(:not([nativepopover="true"])) {
appearance: auto !important;
-moz-default-appearance: menupopup;
/* We set the default background here, rather than on ::part(content),

View File

@@ -1140,9 +1140,7 @@ class nsZenFolders extends nsZenDOMOperatedFeature {
}
gBrowser.tabContainer._invalidateCachedTabs();
setTimeout(() => {
delete this._sessionRestoring;
}, 0);
delete this._sessionRestoring;
}
/**
@@ -1278,7 +1276,7 @@ class nsZenFolders extends nsZenDOMOperatedFeature {
}
get #folderAnimationDuration() {
return this._sessionRestoring || this._dontAnimateFolder ? 0 : 0.12;
return this._dontAnimateFolder ? 0 : 0.12;
}
async animateCollapse(group) {
@@ -1696,7 +1694,10 @@ class nsZenFolders extends nsZenDOMOperatedFeature {
for (let i = 0; i < groupItems.length; i++) {
const { item, splitViewId } = groupItems[i];
itemsToShow.push(item);
let itemVisible = item.visible;
if (itemVisible) {
itemsToShow.push(item);
}
// Skip selected items
if (selectedTabs.includes(item)) {
@@ -1708,7 +1709,7 @@ class nsZenFolders extends nsZenDOMOperatedFeature {
continue;
}
if (!item.hasAttribute?.("folder-active")) {
if (!itemVisible) {
if (!itemsToHide.includes(item)) {
itemsToHide.push(item);
}