feat: Correctly animate new tabs for collapsed live folders, b=no-bug, c=folders

This commit is contained in:
mr. m
2026-02-23 12:05:05 +01:00
parent dd92699ca1
commit bd43b86de8
2 changed files with 14 additions and 20 deletions

View File

@@ -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.
*

View File

@@ -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;
}