From bb1bd9c7229e0ff6c25e5702b09ca43a3b7a3226 Mon Sep 17 00:00:00 2001 From: Brandon Quon <147013549+bnquon@users.noreply.github.com> Date: Mon, 27 Jul 2026 05:47:24 -0700 Subject: [PATCH] gh-14724: Fix non-tab drags switching workspaces (gh-14731) --- src/zen/drag-and-drop/ZenDragAndDrop.js | 7 ++++++- src/zen/spaces/ZenSpaceCreation.mjs | 8 ++------ src/zen/spaces/ZenSpaceManager.mjs | 4 +--- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/zen/drag-and-drop/ZenDragAndDrop.js b/src/zen/drag-and-drop/ZenDragAndDrop.js index f6a2c7600..c00e60543 100644 --- a/src/zen/drag-and-drop/ZenDragAndDrop.js +++ b/src/zen/drag-and-drop/ZenDragAndDrop.js @@ -726,10 +726,11 @@ #handle_sidebarDragOver(event) { const dt = event.dataTransfer; + const isTabDrag = dt.mozTypesAt(0)[0] === TAB_DROP_TYPE; const { isNearLeftEdge, isNearRightEdge } = this.#shouldSwitchSpace(event); - if (isNearLeftEdge || isNearRightEdge) { + if (isTabDrag && (isNearLeftEdge || isNearRightEdge)) { if (!this.#changeSpaceTimer && !this.#isOutOfWindow) { this.#changeSpaceTimer = setTimeout(() => { this.clearDragOverVisuals(); @@ -753,6 +754,10 @@ handle_spaceIconDragOver(event) { const dt = event.dataTransfer; + if (dt.mozTypesAt(0)[0] !== TAB_DROP_TYPE) { + return; + } + const draggedTab = dt.mozGetDataAt(TAB_DROP_TYPE, 0); if (draggedTab.hasAttribute("zen-essential")) { return; diff --git a/src/zen/spaces/ZenSpaceCreation.mjs b/src/zen/spaces/ZenSpaceCreation.mjs index a85509a96..09cf6d539 100644 --- a/src/zen/spaces/ZenSpaceCreation.mjs +++ b/src/zen/spaces/ZenSpaceCreation.mjs @@ -198,9 +198,7 @@ class nsZenWorkspaceCreation extends MozXULElement { this.currentProfile = { id: 0, - name: lazy.l10n.formatValueSync( - "zen-workspace-default-profile" - ), + name: lazy.l10n.formatValueSync("zen-workspace-default-profile"), }; } else { this.inputProfile.parentNode.hidden = true; @@ -311,9 +309,7 @@ class nsZenWorkspaceCreation extends MozXULElement { showManageContainers: false, }); - const defaultItem = event.target.querySelector( - '[data-usercontextid="0"]' - ); + const defaultItem = event.target.querySelector('[data-usercontextid="0"]'); if (defaultItem) { defaultItem.removeAttribute("data-l10n-id"); defaultItem.label = lazy.l10n.formatValueSync( diff --git a/src/zen/spaces/ZenSpaceManager.mjs b/src/zen/spaces/ZenSpaceManager.mjs index ed741a5da..f9dd62d37 100644 --- a/src/zen/spaces/ZenSpaceManager.mjs +++ b/src/zen/spaces/ZenSpaceManager.mjs @@ -1210,9 +1210,7 @@ class nsZenWorkspaces { showDefaultTab: true, }); - const defaultItem = event.target.querySelector( - '[data-usercontextid="0"]' - ); + const defaultItem = event.target.querySelector('[data-usercontextid="0"]'); if (defaultItem) { defaultItem.removeAttribute("data-l10n-id"); defaultItem.label = lazy.l10n.formatValueSync(