From 432f93770f2864d8e3f2ff37abb9337d256052af Mon Sep 17 00:00:00 2001 From: Nikola Hristov <139394063+iexavl@users.noreply.github.com> Date: Fri, 28 Aug 2026 20:58:05 +0300 Subject: [PATCH] gh-15146: Fix bad current view index after removing a group (gh-15147) --- src/zen/split-view/ZenViewSplitter.mjs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/zen/split-view/ZenViewSplitter.mjs b/src/zen/split-view/ZenViewSplitter.mjs index f1b63c5de..7b5f9ce1c 100644 --- a/src/zen/split-view/ZenViewSplitter.mjs +++ b/src/zen/split-view/ZenViewSplitter.mjs @@ -358,7 +358,9 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { ) { return; } - const currentView = this._data[this._lastOpenedTab.splitViewValue]; + const currentView = this._data.find(group => + group.tabs.includes(this._lastOpenedTab) + ); if (currentView?.tabs.length >= this.MAX_TABS) { return; } @@ -543,7 +545,9 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { const panelsWidth = panelsRect.width; const panelsHeight = panelsRect.height; let numOfTabsToDivide = 2; - const currentView = this._data[this._lastOpenedTab.splitViewValue]; + const currentView = this._data.find(group => + group.tabs.includes(this._lastOpenedTab) + ); if (currentView) { numOfTabsToDivide = currentView.tabs.length + 1; } @@ -1106,7 +1110,6 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { */ resetTabState(tab, forUnsplit) { tab.splitView = false; - delete tab.splitViewValue; tab.removeAttribute("split-view"); tab.linkedBrowser.zenModeActive = false; const container = tab.linkedBrowser.closest(".browserSidebarContainer"); @@ -1150,6 +1153,8 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { } if (this.currentView === groupIndex) { this.deactivateCurrentSplitView(); + } else if (this.currentView > groupIndex) { + this.currentView--; } for (const tab of this._data[groupIndex].tabs) { this.resetTabState(tab, true); @@ -1641,7 +1646,6 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { applyGridToTabs(tabs) { tabs.forEach(tab => { tab.splitView = true; - tab.splitViewValue = this.currentView; tab.setAttribute("split-view", "true"); const container = tab.linkedBrowser?.closest(".browserSidebarContainer"); container.setAttribute("is-zen-split", "true");