From bfbf5cce6144c074fcc562b95289d5ca8bd0bcb9 Mon Sep 17 00:00:00 2001 From: "Mr. M" Date: Sun, 24 Aug 2025 23:24:31 +0200 Subject: [PATCH] fix: Iterate through active folder tabs instead of all tabs, b=no-bug, c=common, folders, workspaces --- .../tabbrowser/content/tabbrowser-js.patch | 4 ++-- src/zen/common/ZenStartup.mjs | 2 +- src/zen/folders/ZenFolders.mjs | 15 +++++++-------- src/zen/folders/zen-folders.css | 2 +- src/zen/workspaces/ZenWorkspaces.mjs | 4 +++- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/browser/components/tabbrowser/content/tabbrowser-js.patch b/src/browser/components/tabbrowser/content/tabbrowser-js.patch index ae63eeb81..081b9eefc 100644 --- a/src/browser/components/tabbrowser/content/tabbrowser-js.patch +++ b/src/browser/components/tabbrowser/content/tabbrowser-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js -index d80a66a01002e78a9c65545d08fe786328ddf124..bb57b1eeb033f602d5014ab23e2cc1389bb9e615 100644 +index d80a66a01002e78a9c65545d08fe786328ddf124..4adabe030bfb322db1a9c95f71eb1adc58e2af77 100644 --- a/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js @@ -422,15 +422,60 @@ @@ -337,7 +337,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..bb57b1eeb033f602d5014ab23e2cc138 if (!tab) { let createLazyBrowser = - restoreTabsLazily && !select && !tabData.pinned; -+ restoreTabsLazily; ++ restoreTabsLazily && !(tabData.pinned && !Services.prefs.getBoolPref("browser.sessionstore.restore_pinned_tabs_on_demand")); let url = "about:blank"; if (tabData.entries?.length) { diff --git a/src/zen/common/ZenStartup.mjs b/src/zen/common/ZenStartup.mjs index 60778af53..25dffdca7 100644 --- a/src/zen/common/ZenStartup.mjs +++ b/src/zen/common/ZenStartup.mjs @@ -13,7 +13,7 @@ // are initialized before we start our own initialization. // please, do not remove this line and if you do, make sure to // test the startup process. - await new Promise((resolve) => resolve()); + await new Promise((resolve) => setTimeout(resolve, 0)); this.openWatermark(); this.#initBrowserBackground(); this.#changeSidebarLocation(); diff --git a/src/zen/folders/ZenFolders.mjs b/src/zen/folders/ZenFolders.mjs index a650caafb..fcc0cb8f6 100644 --- a/src/zen/folders/ZenFolders.mjs +++ b/src/zen/folders/ZenFolders.mjs @@ -1251,11 +1251,10 @@ // But we should be setting the margin only on `folder1`. if (!group.activeTabs.includes(selectedTab) && selectedTab) return; group._prevActiveTabs = group.activeTabs; - for (const item of group.tabs) { + for (const item of group._prevActiveTabs) { if ( item.hasAttribute('folder-active') && - (selectedTab ? item === selectedTab : !item.selected || !onlyIfActive) && - group.activeTabs.includes(item) + (selectedTab ? item === selectedTab : !item.selected || !onlyIfActive) ) { item.removeAttribute('folder-active'); group.activeTabs = group.activeTabs.filter((t) => t !== item); @@ -1282,14 +1281,14 @@ expandVisibleTab(group) { if (!group?.isZenFolder) return; - for (const item of group.allItems) { - if (item.hasAttribute('was-folder-active')) { - item.setAttribute('folder-active', 'true'); - item.removeAttribute('was-folder-active'); + group.activeTabs = group._prevActiveTabs || []; + for (const tab of group.activeTabs) { + if (tab.hasAttribute('was-folder-active')) { + tab.setAttribute('folder-active', 'true'); + tab.removeAttribute('was-folder-active'); } } - group.activeTabs = group._prevActiveTabs || []; this.on_TabGroupExpand({ target: group, forExpandVisible: true }); gBrowser.tabContainer._invalidateCachedVisibleTabs(); diff --git a/src/zen/folders/zen-folders.css b/src/zen/folders/zen-folders.css index e051f7258..66a647538 100644 --- a/src/zen/folders/zen-folders.css +++ b/src/zen/folders/zen-folders.css @@ -277,7 +277,7 @@ zen-folder { fill-opacity: 0.9; -moz-context-properties: fill, fill-opacity; fill: var(--zen-folder-stroke); - transform: translate(-180%, 9%); + transform: translate(-180%, 2.5px); } } diff --git a/src/zen/workspaces/ZenWorkspaces.mjs b/src/zen/workspaces/ZenWorkspaces.mjs index 3b8711509..526f54d09 100644 --- a/src/zen/workspaces/ZenWorkspaces.mjs +++ b/src/zen/workspaces/ZenWorkspaces.mjs @@ -1602,7 +1602,9 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature { const emptyTab = this._emptyTab; if (emptyTab) { emptyTab.setAttribute('zen-workspace-id', this.activeWorkspace); - gBrowser.TabStateFlusher.flush(emptyTab.linkedBrowser); + if (emptyTab.linkedBrowser) { + gBrowser.TabStateFlusher.flush(emptyTab.linkedBrowser); + } const container = this.activeWorkspaceStrip; if (container) { container.insertBefore(emptyTab, container.firstChild);