From 6b255eabec4e2db3875ff822ab51d58072800884 Mon Sep 17 00:00:00 2001 From: "mr. m" Date: Sat, 24 Jan 2026 08:58:36 +0100 Subject: [PATCH] feat: Fixed allowing folders to drop into normal tabs, b=no-bug, c=tabs --- src/zen/drag-and-drop/ZenDragAndDrop.js | 14 ++++++++------ src/zen/tabs/ZenPinnedTabManager.mjs | 6 ++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/zen/drag-and-drop/ZenDragAndDrop.js b/src/zen/drag-and-drop/ZenDragAndDrop.js index b76972fed..11f1bb10e 100644 --- a/src/zen/drag-and-drop/ZenDragAndDrop.js +++ b/src/zen/drag-and-drop/ZenDragAndDrop.js @@ -973,13 +973,15 @@ (possibleFolderElement.collapsed || possibleFolderElement.childGroupsAndTabs.length < 2))); if ( - isTabGroupLabel(draggedTab) && - draggedTab.group?.isZenFolder && - (isTab(dropElement) || dropElement.hasAttribute("split-view-group")) && - (!dropElement.pinned || dropElement.hasAttribute("zen-essential")) + (isTabGroupLabel(draggedTab) && + draggedTab.group?.isZenFolder && + (isTab(dropElement) || dropElement.hasAttribute("split-view-group")) && + (!dropElement.pinned || dropElement.hasAttribute("zen-essential"))) || + showIndicatorUnderNewTabButton ) { + dropElement = null; this.clearDragOverVisuals(); - return null; + return [dropElement, dropBefore]; } if ( isTab(dropElement) || @@ -994,7 +996,7 @@ let top = 0; threshold = Services.prefs.getIntPref("browser.tabs.dragDrop.moveOverThresholdPercent") / 100; - if (overlapPercent > threshold) { + if (overlapPercent > threshold || showIndicatorUnderNewTabButton) { top = Math.round(rect.top + rect.height) + "px"; dropBefore = false; } else { diff --git a/src/zen/tabs/ZenPinnedTabManager.mjs b/src/zen/tabs/ZenPinnedTabManager.mjs index aca3ba580..ebe9b04b5 100644 --- a/src/zen/tabs/ZenPinnedTabManager.mjs +++ b/src/zen/tabs/ZenPinnedTabManager.mjs @@ -565,6 +565,12 @@ class nsZenPinnedTabManager extends nsZenDOMOperatedFeature { currentEssenialContainer.essentialsPromo.remove(); } + movingTabs = movingTabs.filter((tab) => + gBrowser.isTabGroupLabel(tab) + ? tab.group?.isZenFolder && !tabsTarget && !essentialTabsTarget + : true + ); + // TODO: Solve the issue of adding a tab between two groups // Remove group labels from the moving tabs and replace it // with the sub tabs