From 5a841063f2c428efd35eccf83a97b232fc8cac66 Mon Sep 17 00:00:00 2001 From: "mr. m" <91018726+mr-cheffy@users.noreply.github.com> Date: Thu, 23 Apr 2026 19:49:58 +0200 Subject: [PATCH] no-bug: Always select the first tab when unsplitting (gh-13378) --- src/zen/drag-and-drop/ZenDragAndDrop.js | 14 +++++++++++++- src/zen/split-view/ZenViewSplitter.mjs | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/zen/drag-and-drop/ZenDragAndDrop.js b/src/zen/drag-and-drop/ZenDragAndDrop.js index 94c6dff3f..75dc2455f 100644 --- a/src/zen/drag-and-drop/ZenDragAndDrop.js +++ b/src/zen/drag-and-drop/ZenDragAndDrop.js @@ -68,6 +68,7 @@ #maxTabsPerRow = 0; #changeSpaceTimer = null; #isAnimatingTabMove = false; + #firstHapticFeedbackPlayed = false; #dragOverSplit = {}; @@ -1150,12 +1151,17 @@ // outside of a valid drop target. ownerGlobal.gZenFolders.highlightGroupOnDragOver(null); this.ZenDragAndDropService.onDragEnd(); - super.handle_dragend(event); + try { + super.handle_dragend(event); + } catch (e) { + console.error(e); + } thisFromGlobal.clearDragOverVisuals(); ownerGlobal.gZenPinnedTabManager.removeTabContainersDragoverClass(); thisFromGlobal._clearDragOverSplit(); this.#maybeClearVerticalPinnedGridDragOver(); thisFromGlobal.originalDragImageArgs = []; + this.#firstHapticFeedbackPlayed = false; window.removeEventListener( "dragenter", thisFromGlobal.handle_windowDragEnter, @@ -1410,6 +1416,12 @@ dropBefore = true; } } + if (shouldPlayHapticFeedback && !this.#firstHapticFeedbackPlayed) { + // The first haptic feedback can often be too annoying, + // so we skip it, but play for subsequent dragovers. + this.#firstHapticFeedbackPlayed = true; + shouldPlayHapticFeedback = false; + } if (shouldPlayHapticFeedback) { // eslint-disable-next-line mozilla/valid-services Services.zen.playHapticFeedback(); diff --git a/src/zen/split-view/ZenViewSplitter.mjs b/src/zen/split-view/ZenViewSplitter.mjs index 37fc8e6cf..50082ed63 100644 --- a/src/zen/split-view/ZenViewSplitter.mjs +++ b/src/zen/split-view/ZenViewSplitter.mjs @@ -231,7 +231,7 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { } this.removeGroup(groupIndex); if (changeTab) { - gBrowser.selectedTab = remainingTabs[remainingTabs.length - 1]; + gBrowser.selectedTab = remainingTabs[0]; document .getElementById("cmd_zenNewEmptySplit") .removeAttribute("disabled");