fix: Iterate through active folder tabs instead of all tabs, b=no-bug, c=common, folders, workspaces

This commit is contained in:
Mr. M
2025-08-24 23:24:31 +02:00
parent e8aa5c93ee
commit bfbf5cce61
5 changed files with 14 additions and 13 deletions

View File

@@ -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) {

View File

@@ -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();

View File

@@ -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();

View File

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

View File

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