Vanessa 2024-12-27 00:00:03 +08:00
parent ecc0b3aafb
commit 896a19ae4f

View File

@ -181,7 +181,7 @@ export class Wnd {
let oldTabHeaderElement = window.siyuan.dragElement; let oldTabHeaderElement = window.siyuan.dragElement;
let exitDrag = false; let exitDrag = false;
Array.from(it.firstElementChild.childNodes).find((item: HTMLElement) => { Array.from(it.firstElementChild.childNodes).find((item: HTMLElement) => {
if (item.style.opacity === "0.1") { if (item.style?.opacity === "0.1") {
oldTabHeaderElement = item; oldTabHeaderElement = item;
exitDrag = true; exitDrag = true;
return true; return true;
@ -222,12 +222,14 @@ export class Wnd {
}); });
let dragleaveTimeout: number; let dragleaveTimeout: number;
let headerDragCounter = 0; let headerDragCounter = 0;
this.headersElement.parentElement.addEventListener("dragleave", (event)=> { this.headersElement.parentElement.addEventListener("dragleave", function () {
if (!hasClosestByAttribute(event.target as HTMLElement, "data-clone", "true")) { if (!hasClosestByAttribute(event.target as HTMLElement, "data-clone", "true")) {
headerDragCounter--; headerDragCounter--;
} }
if (headerDragCounter === 0) { if (headerDragCounter === 0) {
this.headersElement.parentElement.classList.remove("layout-tab-bars--drag"); document.querySelectorAll(".layout-tab-bars--drag").forEach(item => {
item.classList.remove("layout-tab-bars--drag");
})
clearTimeout(dragleaveTimeout); clearTimeout(dragleaveTimeout);
// 窗口拖拽到新窗口时,不 drop 无法移除 clone 的元素 // 窗口拖拽到新窗口时,不 drop 无法移除 clone 的元素
dragleaveTimeout = window.setTimeout(() => { dragleaveTimeout = window.setTimeout(() => {
@ -248,12 +250,14 @@ export class Wnd {
this.headersElement.parentElement.classList.remove("layout-tab-bars--drag"); this.headersElement.parentElement.classList.remove("layout-tab-bars--drag");
}); });
this.headersElement.parentElement.addEventListener("drop", (event: DragEvent & { this.headersElement.parentElement.addEventListener("drop", function (event: DragEvent & {
target: HTMLElement target: HTMLElement
})=> { }) {
this.headersElement.parentElement.classList.remove("layout-tab-bars--drag"); document.querySelectorAll(".layout-tab-bars--drag").forEach(item => {
item.classList.remove("layout-tab-bars--drag");
})
headerDragCounter = 0; headerDragCounter = 0;
const it = this.headersElement; const it = this as HTMLElement;
if (event.dataTransfer.types.includes(Constants.SIYUAN_DROP_FILE)) { if (event.dataTransfer.types.includes(Constants.SIYUAN_DROP_FILE)) {
// 文档树拖拽 // 文档树拖拽
setPanelFocus(it.parentElement); setPanelFocus(it.parentElement);
@ -289,7 +293,7 @@ export class Wnd {
} }
const nextTabHeaderElement = (Array.from(it.firstElementChild.childNodes).find((item: HTMLElement) => { const nextTabHeaderElement = (Array.from(it.firstElementChild.childNodes).find((item: HTMLElement) => {
if (item.style.opacity === "0.1") { if (item.style?.opacity === "0.1") {
return true; return true;
} }
}) as HTMLElement)?.nextElementSibling; }) as HTMLElement)?.nextElementSibling;