feat: Allow unsplitting tab without selecting it via Shift-Click, p=#12534

This commit is contained in:
Andrey Bochkarev
2026-02-26 20:46:58 +03:00
committed by GitHub
parent b54a7027fd
commit d67b4457e8

View File

@@ -1496,8 +1496,8 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature {
header.classList.add("zen-view-splitter-header");
const removeButton = document.createXULElement("toolbarbutton");
removeButton.classList.add("zen-tab-unsplit-button");
removeButton.addEventListener("click", () => {
this.removeTabFromSplit(container);
removeButton.addEventListener("click", (event) => {
this.removeTabFromSplit(event, container);
});
const rearrangeButton = document.createXULElement("toolbarbutton");
rearrangeButton.classList.add("zen-tab-rearrange-button");
@@ -1846,9 +1846,10 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature {
/**
* @description removes the tab from the split
* @param {Event} event - The click event
* @param {Element} container - The container element
*/
removeTabFromSplit = (container) => {
removeTabFromSplit = (event, container) => {
const browser = container.querySelector("browser");
if (browser) {
const tab = gBrowser.getTabForBrowser(browser);
@@ -1858,8 +1859,10 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature {
if (groupIndex >= 0) {
this.removeTabFromGroup(tab, groupIndex, { forUnsplit: true });
}
gBrowser.selectedTab = tab;
tab._selected = true;
if (!event.shiftKey) {
gBrowser.selectedTab = tab;
tab._selected = true;
}
}
}
};