Vanessa 2024-12-26 23:45:29 +08:00
parent cc333eacab
commit 97c8b18f02

View File

@ -167,6 +167,7 @@ export class Wnd {
target: HTMLElement target: HTMLElement
}) { }) {
const it = this as HTMLElement; const it = this as HTMLElement;
it.classList.remove("layout-tab-bars--drag");
if (event.dataTransfer.types.includes(Constants.SIYUAN_DROP_FILE)) { if (event.dataTransfer.types.includes(Constants.SIYUAN_DROP_FILE)) {
event.preventDefault(); event.preventDefault();
it.classList.add("layout-tab-bars--drag"); it.classList.add("layout-tab-bars--drag");
@ -221,9 +222,12 @@ export class Wnd {
}); });
let dragleaveTimeout: number; let dragleaveTimeout: number;
let headerDragCounter = 0; let headerDragCounter = 0;
this.headersElement.parentElement.addEventListener("dragleave", function () { this.headersElement.parentElement.addEventListener("dragleave", (event)=> {
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");
clearTimeout(dragleaveTimeout); clearTimeout(dragleaveTimeout);
// 窗口拖拽到新窗口时,不 drop 无法移除 clone 的元素 // 窗口拖拽到新窗口时,不 drop 无法移除 clone 的元素
dragleaveTimeout = window.setTimeout(() => { dragleaveTimeout = window.setTimeout(() => {
@ -231,20 +235,25 @@ export class Wnd {
item.remove(); item.remove();
}); });
}, 1000); }, 1000);
document.querySelectorAll(".layout-tab-bars--drag").forEach(item => {
item.classList.remove("layout-tab-bars--drag");
})
} }
}); });
this.headersElement.parentElement.addEventListener("dragenter", (event) => { this.headersElement.parentElement.addEventListener("dragenter", (event) => {
event.preventDefault(); event.preventDefault();
if (!hasClosestByAttribute(event.target as HTMLElement, "data-clone", "true")) {
headerDragCounter++; headerDragCounter++;
}
}); });
this.headersElement.parentElement.addEventListener("drop", function (event: DragEvent & {
this.headersElement.parentElement.addEventListener("dragend", (event) => {
this.headersElement.parentElement.classList.remove("layout-tab-bars--drag");
});
this.headersElement.parentElement.addEventListener("drop", (event: DragEvent & {
target: HTMLElement target: HTMLElement
}) { })=> {
this.headersElement.parentElement.classList.remove("layout-tab-bars--drag");
headerDragCounter = 0; headerDragCounter = 0;
const it = this as HTMLElement; const it = this.headersElement;
if (event.dataTransfer.types.includes(Constants.SIYUAN_DROP_FILE)) { if (event.dataTransfer.types.includes(Constants.SIYUAN_DROP_FILE)) {
// 文档树拖拽 // 文档树拖拽
setPanelFocus(it.parentElement); setPanelFocus(it.parentElement);
@ -258,9 +267,6 @@ export class Wnd {
} }
}); });
window.siyuan.dragElement = undefined; window.siyuan.dragElement = undefined;
document.querySelectorAll(".layout-tab-bars--drag").forEach(item => {
item.classList.remove("layout-tab-bars--drag");
})
return; return;
} }
const tabData = JSON.parse(event.dataTransfer.getData(Constants.SIYUAN_DROP_TAB)); const tabData = JSON.parse(event.dataTransfer.getData(Constants.SIYUAN_DROP_TAB));
@ -278,9 +284,6 @@ export class Wnd {
} }
} }
/// #endif /// #endif
document.querySelectorAll(".layout-tab-bars--drag").forEach(item => {
item.classList.remove("layout-tab-bars--drag");
})
if (!oldTab) { if (!oldTab) {
return; return;
} }