mirror of
https://github.com/zen-browser/desktop.git
synced 2026-01-24 21:56:10 +00:00
feat: Have in mind we might have invalid drop elements when DnD, b=no-bug, c=no-component
This commit is contained in:
@@ -887,12 +887,15 @@
|
||||
let dropElementFromEvent = event.target.closest(dropZoneSelector);
|
||||
dropElement = dropElementFromEvent || dropElement;
|
||||
if (!dropElementFromEvent) {
|
||||
if (
|
||||
event.target.classList.contains("zen-workspace-empty-space") ||
|
||||
event.target.closest("#tabbrowser-arrowscrollbox-periphery")
|
||||
) {
|
||||
let hoveringPeriphery = !!event.target.closest("#tabbrowser-arrowscrollbox-periphery");
|
||||
if (event.target.classList.contains("zen-workspace-empty-space") || hoveringPeriphery) {
|
||||
let lastTab = gBrowser.tabs.at(-1);
|
||||
dropElement = this._tabbrowserTabs.ariaFocusableItems.at(-1) || lastTab;
|
||||
dropElement =
|
||||
(hoveringPeriphery
|
||||
? this._tabbrowserTabs.ariaFocusableItems.at(
|
||||
gBrowser._numVisiblePinTabsWithoutCollapsed
|
||||
)
|
||||
: this._tabbrowserTabs.ariaFocusableItems.at(-1)) || lastTab;
|
||||
// Only if there are no normal tabs to drop after
|
||||
showIndicatorUnderNewTabButton = lastTab.hasAttribute("zen-empty-tab");
|
||||
}
|
||||
@@ -904,8 +907,21 @@
|
||||
this.#removeDragOverBackground();
|
||||
}
|
||||
if (!dropElement) {
|
||||
let dragData = draggedTab._dragData;
|
||||
dropElement = dragData.dropElement;
|
||||
dropBefore = dragData.dropBefore;
|
||||
}
|
||||
if (!dropElement) {
|
||||
this.clearDragOverVisuals();
|
||||
return null;
|
||||
}
|
||||
if (dropElement.hasAttribute("zen-empty-tab") && dropElement.group) {
|
||||
let secondTab = dropElement.group.tabs[1];
|
||||
dropElement = secondTab || dropElement.group.labelContainerElement;
|
||||
if (secondTab) {
|
||||
dropBefore = true;
|
||||
}
|
||||
}
|
||||
let possibleFolderElement = dropElement.parentElement;
|
||||
let isZenFolder = possibleFolderElement?.isZenFolder;
|
||||
let canHightlightGroup =
|
||||
|
||||
Reference in New Issue
Block a user