diff --git a/src/zen/drag-and-drop/ZenDragAndDrop.js b/src/zen/drag-and-drop/ZenDragAndDrop.js index af2ed7a61..d40c9c282 100644 --- a/src/zen/drag-and-drop/ZenDragAndDrop.js +++ b/src/zen/drag-and-drop/ZenDragAndDrop.js @@ -707,7 +707,9 @@ if ( movingTabsSet.has(dropElement) || !isTab(draggedTab) || - draggedTab?.group?.hasAttribute("split-view-group") + draggedTab?.group?.hasAttribute("split-view-group") || + draggedTab.hasAttribute("zen-live-folder-item-id") || + dropElement.hasAttribute("zen-live-folder-item-id") ) { this._clearDragOverSplit(); return; diff --git a/src/zen/folders/ZenFolders.mjs b/src/zen/folders/ZenFolders.mjs index 5aca52dc7..1e3e3a88d 100644 --- a/src/zen/folders/ZenFolders.mjs +++ b/src/zen/folders/ZenFolders.mjs @@ -400,6 +400,14 @@ class nsZenFolders extends nsZenDOMOperatedFeature { tabs = []; } + // Prevent create folder inside Live Folder + const thereIsOneLiveFolderTab = tabs?.some((tab) => + tab.hasAttribute("zen-live-folder-item-id") + ); + if (thereIsOneLiveFolderTab) { + return; + } + const canInsertBefore = !isFromToolbar && !triggerTab.hasAttribute("zen-essential") && diff --git a/src/zen/split-view/ZenViewSplitter.mjs b/src/zen/split-view/ZenViewSplitter.mjs index be4e094a9..9e9bacd25 100644 --- a/src/zen/split-view/ZenViewSplitter.mjs +++ b/src/zen/split-view/ZenViewSplitter.mjs @@ -318,14 +318,15 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { (this._lastOpenedTab.getAttribute("zen-workspace-id") !== draggedTab.getAttribute("zen-workspace-id") && !this._lastOpenedTab.hasAttribute("zen-essential") && - !draggedTab.hasAttribute("zen-essential")) + !draggedTab.hasAttribute("zen-essential")) || + this._lastOpenedTab.hasAttribute("zen-live-folder-item-id") ) { this._lastOpenedTab = gBrowser.selectedTab; } if (!draggedTab || this._canDrop || this._hasAnimated || this.fakeBrowser) { return; } - if (draggedTab.splitView) { + if (draggedTab.splitView || draggedTab.hasAttribute("zen-live-folder-item-id")) { return; } const currentView = this._data[this._lastOpenedTab.splitViewValue]; @@ -1296,8 +1297,9 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { const allArePinned = tabs.every((tab) => tab.pinned); const thereIsOnePinned = tabs.some((tab) => tab.pinned); const thereIsOneEssential = tabs.some((tab) => tab.hasAttribute("zen-essential")); + const thereIsOneLiveFolder = tabs.some((tab) => tab.hasAttribute("zen-live-folder-item-id")); - if (thereIsOneEssential || (thereIsOnePinned && !allArePinned)) { + if (thereIsOneEssential || (thereIsOnePinned && !allArePinned) || thereIsOneLiveFolder) { for (let i = 0; i < tabs.length; i++) { const tab = tabs[i]; if (tab.pinned) {