From bd43b86de87fa2f6862bf51f7e250a5f1818c411 Mon Sep 17 00:00:00 2001 From: "mr. m" Date: Mon, 23 Feb 2026 12:05:05 +0100 Subject: [PATCH] feat: Correctly animate new tabs for collapsed live folders, b=no-bug, c=folders --- src/zen/folders/ZenFolder.mjs | 10 ++++++++++ src/zen/folders/ZenFolders.mjs | 24 ++++-------------------- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/zen/folders/ZenFolder.mjs b/src/zen/folders/ZenFolder.mjs index 4728749fa..4a7aecf4a 100644 --- a/src/zen/folders/ZenFolder.mjs +++ b/src/zen/folders/ZenFolder.mjs @@ -278,6 +278,16 @@ export class nsZenFolder extends MozTabbrowserTabGroup { super.on_click(event); } + addTabs(tabs) { + super.addTabs(tabs); + if (this.collapsed && !gZenFolders._sessionRestoring && this.isLiveFolder && tabs.length) { + for (let tab of tabs) { + tab.setAttribute("folder-active", "true"); + } + gZenFolders.animateCollapse(this); + } + } + /** * Get the root most collapsed folder in the tree. * diff --git a/src/zen/folders/ZenFolders.mjs b/src/zen/folders/ZenFolders.mjs index ea7891b80..ed73f4943 100644 --- a/src/zen/folders/ZenFolders.mjs +++ b/src/zen/folders/ZenFolders.mjs @@ -241,25 +241,8 @@ class nsZenFolders extends nsZenDOMOperatedFeature { group.setAttribute("had-zen-pinned-changed", true); } - if (group.collapsed && !this._sessionRestoring) { - if (group.isLiveFolder) { - if (!group.hasAttribute("has-active")) { - let groupStart = group.groupStartElement; - let marginTop = groupStart.style.marginTop ? parseInt(groupStart.style.marginTop) : 0; - if (marginTop < 0) { - groupStart.style.marginTop = `${marginTop + 4}px`; - } - } - - tab.setAttribute("folder-active", "true"); - group.setAttribute("has-active", "true"); - group.groupContainer.removeAttribute("hidden"); - group.activeTabs = [...new Set([...group.activeTabs, tab])].sort( - (a, b) => a._tPos > b._tPos - ); - } else { - group.collapsed = group.hasAttribute("has-active"); - } + if (group.collapsed && !this._sessionRestoring && !group.isLiveFolder) { + group.collapsed = group.hasAttribute("has-active"); } } @@ -961,7 +944,8 @@ class nsZenFolders extends nsZenDOMOperatedFeature { if ( !group.collapsed || !Services.prefs.getBoolPref("zen.folders.search.enabled") || - gBrowser.tabContainer.hasAttribute("movingtab") + gBrowser.tabContainer.hasAttribute("movingtab") || + event.target.classList.contains("tab-reset-button") ) { return; }