From a993f40532a656c83c786d6e0f18751a59da46a3 Mon Sep 17 00:00:00 2001 From: "mr. m" Date: Sat, 17 Jan 2026 15:35:59 +0100 Subject: [PATCH] fix: Fixed fetching wrong history entries for pinned tabs state cache, b=no-bug, c=workspaces, split-view --- prefs/zen/workspaces.yaml | 2 +- src/zen/sessionstore/ZenWindowSync.sys.mjs | 9 +++++---- src/zen/split-view/ZenViewSplitter.mjs | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/prefs/zen/workspaces.yaml b/prefs/zen/workspaces.yaml index 8bf9a57be..3e0677810 100644 --- a/prefs/zen/workspaces.yaml +++ b/prefs/zen/workspaces.yaml @@ -33,7 +33,7 @@ value: true - name: zen.workspaces.dnd-switch-padding - value: 10 + value: 4 - name: zen.workspaces.debug value: "@cond" diff --git a/src/zen/sessionstore/ZenWindowSync.sys.mjs b/src/zen/sessionstore/ZenWindowSync.sys.mjs index 5bc9b07af..d498ab005 100644 --- a/src/zen/sessionstore/ZenWindowSync.sys.mjs +++ b/src/zen/sessionstore/ZenWindowSync.sys.mjs @@ -859,8 +859,8 @@ class nsZenWindowSync { if (!aTab.linkedBrowser) { return []; } - let cachedState = lazy.TabStateCache.get(aTab.linkedBrowser.permanentKey) || { entries: [] }; - return cachedState.entries || []; + let cachedState = lazy.TabStateCache.get(aTab.linkedBrowser.permanentKey) || {}; + return cachedState.history?.entries || []; } /** @@ -1019,10 +1019,11 @@ class nsZenWindowSync { // There are cases where the pinned state is changed but we don't // wan't to override the initial state we stored when the tab was created. // For example, when session restore pins a tab again. + let tabStatePromise; if (!tab._zenPinnedInitialState) { - this.setPinnedTabState(tab); + tabStatePromise = this.setPinnedTabState(tab); } - return this.on_TabMove(aEvent); + return Promise.all([tabStatePromise, this.on_TabMove(aEvent)]); } on_TabUnpinned(aEvent) { diff --git a/src/zen/split-view/ZenViewSplitter.mjs b/src/zen/split-view/ZenViewSplitter.mjs index 9cec3699c..f245349e6 100644 --- a/src/zen/split-view/ZenViewSplitter.mjs +++ b/src/zen/split-view/ZenViewSplitter.mjs @@ -252,6 +252,7 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { // eslint-disable-next-line complexity onBrowserDragOverToSplit(event) { + gBrowser.tabContainer.tabDragAndDrop.clearSpaceSwitchTimer(); if (this.fakeBrowser) { return; } @@ -450,7 +451,6 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { const side = this.fakeBrowser.getAttribute("side"); this._lastOpenedTab = gBrowser.selectedTab; this._draggingTab = null; - gBrowser.tabContainer.tabDragAndDrop.clearSpaceSwitchTimer(); event.dataTransfer.updateDragImage( ...gBrowser.tabContainer.tabDragAndDrop.originalDragImageArgs );