Refactor tab movement logic in ZenViewSplitter; ensure empty tab is last and adjust fake browser removal behavior

This commit is contained in:
mr. M 2025-03-05 20:08:35 +01:00
parent f0e2a68abf
commit 148c9661c2
No known key found for this signature in database
GPG key ID: CBD57A2AEDBDA1FB

View file

@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
index 628aa6596627c85efe361fc1ece8fd58f7ee653e..1cd7343818d25e40d4a441f70307f7ce7ff98054 100644 index 628aa6596627c85efe361fc1ece8fd58f7ee653e..f3cb04e9034d24752bdf6911e647fe122b7900f1 100644
--- a/browser/components/tabbrowser/content/tabbrowser.js --- a/browser/components/tabbrowser/content/tabbrowser.js
+++ b/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js
@@ -412,11 +412,50 @@ @@ -412,11 +412,50 @@
@ -544,17 +544,18 @@ index 628aa6596627c85efe361fc1ece8fd58f7ee653e..1cd7343818d25e40d4a441f70307f7ce
return; return;
} }
if (aTab.group && aTab.group.id === aGroup.id) { if (aTab.group && aTab.group.id === aGroup.id) {
@@ -5721,6 +5856,9 @@ @@ -5721,6 +5856,10 @@
moveActionCallback(); moveActionCallback();
+ ZenWorkspaces._makeSureEmptyTabIsLast(); + ZenWorkspaces._makeSureEmptyTabIsLast();
+ gZenViewSplitter._maybeRemoveFakeBrowser(); + gZenViewSplitter._maybeRemoveFakeBrowser(false);
+ gZenViewSplitter._canDrop = false;
+ +
// Clear tabs cache after moving nodes because the order of tabs may have // Clear tabs cache after moving nodes because the order of tabs may have
// changed. // changed.
this.tabContainer._invalidateCachedTabs(); this.tabContainer._invalidateCachedTabs();
@@ -5771,7 +5909,7 @@ @@ -5771,7 +5910,7 @@
createLazyBrowser, createLazyBrowser,
}; };
@ -563,7 +564,7 @@ index 628aa6596627c85efe361fc1ece8fd58f7ee653e..1cd7343818d25e40d4a441f70307f7ce
if (aIndex < numPinned || (aTab.pinned && aIndex == numPinned)) { if (aIndex < numPinned || (aTab.pinned && aIndex == numPinned)) {
params.pinned = true; params.pinned = true;
} }
@@ -7415,6 +7553,7 @@ @@ -7415,6 +7554,7 @@
aWebProgress.isTopLevel aWebProgress.isTopLevel
) { ) {
this.mTab.setAttribute("busy", "true"); this.mTab.setAttribute("busy", "true");
@ -571,7 +572,7 @@ index 628aa6596627c85efe361fc1ece8fd58f7ee653e..1cd7343818d25e40d4a441f70307f7ce
gBrowser._tabAttrModified(this.mTab, ["busy"]); gBrowser._tabAttrModified(this.mTab, ["busy"]);
this.mTab._notselectedsinceload = !this.mTab.selected; this.mTab._notselectedsinceload = !this.mTab.selected;
} }
@@ -8381,7 +8520,7 @@ var TabContextMenu = { @@ -8381,7 +8521,7 @@ var TabContextMenu = {
); );
contextUnpinSelectedTabs.hidden = contextUnpinSelectedTabs.hidden =
!this.contextTab.pinned || !multiselectionContext; !this.contextTab.pinned || !multiselectionContext;
@ -580,7 +581,7 @@ index 628aa6596627c85efe361fc1ece8fd58f7ee653e..1cd7343818d25e40d4a441f70307f7ce
// Move Tab items // Move Tab items
let contextMoveTabOptions = document.getElementById( let contextMoveTabOptions = document.getElementById(
"context_moveTabOptions" "context_moveTabOptions"
@@ -8414,7 +8553,7 @@ var TabContextMenu = { @@ -8414,7 +8554,7 @@ var TabContextMenu = {
let contextMoveTabToStart = document.getElementById("context_moveToStart"); let contextMoveTabToStart = document.getElementById("context_moveToStart");
let isFirstTab = let isFirstTab =
tabsToMove[0] == visibleTabs[0] || tabsToMove[0] == visibleTabs[0] ||
@ -589,7 +590,7 @@ index 628aa6596627c85efe361fc1ece8fd58f7ee653e..1cd7343818d25e40d4a441f70307f7ce
contextMoveTabToStart.disabled = isFirstTab && allSelectedTabsAdjacent; contextMoveTabToStart.disabled = isFirstTab && allSelectedTabsAdjacent;
document.getElementById("context_openTabInWindow").disabled = document.getElementById("context_openTabInWindow").disabled =
@@ -8647,6 +8786,7 @@ var TabContextMenu = { @@ -8647,6 +8787,7 @@ var TabContextMenu = {
if (this.contextTab.multiselected) { if (this.contextTab.multiselected) {
gBrowser.removeMultiSelectedTabs(); gBrowser.removeMultiSelectedTabs();
} else { } else {