Added support to unsplit tabs when dragging them to the sidebar

This commit is contained in:
mr. m
2025-03-07 13:59:23 +01:00
parent 0575373167
commit 39fdda8958
2 changed files with 41 additions and 3 deletions

View File

@@ -1588,7 +1588,9 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
this.splitTabs([draggedTab, droppedOnTab], gridType, 1);
}
}
window.requestAnimationFrame(() => {
this._maybeRemoveFakeBrowser(false);
});
if (browserContainer) {
gZenUIManager.motion
@@ -1606,12 +1608,39 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
}
)
.then(() => {
gBrowser.tabbox.removeAttribute('style');
this._maybeRemoveFakeBrowser(false);
});
}
return true;
}
handleTabDrop(event, urls, replace, inBackground) {
if (!inBackground || replace || urls.length !== 1) {
return false;
}
const url = urls[0];
if (!url.startsWith('panel-')) {
return false;
}
const browserContainer = document.getElementById(url);
const browser = browserContainer?.querySelector('browser');
if (!browser) {
return false;
}
const tab = gBrowser.getTabForBrowser(browser);
if (!tab) {
return false;
}
if (tab.splitView) {
// Unsplit the tab and exit from the drag view
this.dropZone?.removeAttribute('enabled');
this.disableTabRearrangeView(event);
this.removeTabFromSplit(browserContainer);
return true;
}
return false;
}
/**
* Gets or creates a tab group for split view tabs
* @param {Array} tabs Initial tabs to add to the group if creating new

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
index fa96568d366fd3608f9bd583fa793150bd815c8b..9151fa411faa9689c7b079fafe0fab1234177f40 100644
index fa96568d366fd3608f9bd583fa793150bd815c8b..a2a0ca3982634252abfdad20e768431a840ea19b 100644
--- a/browser/components/tabbrowser/content/tabs.js
+++ b/browser/components/tabbrowser/content/tabs.js
@@ -94,7 +94,7 @@
@@ -97,6 +97,15 @@ index fa96568d366fd3608f9bd583fa793150bd815c8b..9151fa411faa9689c7b079fafe0fab12
postTransitionCleanup();
} else {
let onTransitionEnd = transitionendEvent => {
@@ -1249,7 +1263,7 @@
return;
}
}
-
+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return;
gBrowser.loadTabs(urls, {
inBackground,
replace,
@@ -1279,13 +1293,23 @@
return;
}