mirror of
https://github.com/zen-browser/desktop.git
synced 2026-03-29 03:41:51 +00:00
fix: Prevent live folder tabs from mixing with other tabs, p=#12528
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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") &&
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user