mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-02-17 20:48:06 +01:00
🎨 #10730
This commit is contained in:
parent
1d2f6d276f
commit
2cf0b09282
5 changed files with 81 additions and 32 deletions
|
|
@ -3,8 +3,11 @@ import {genUUID} from "../util/genID";
|
|||
import {
|
||||
fixWndFlex1,
|
||||
getInstanceById,
|
||||
getWndByLayout, JSONToCenter,
|
||||
newModelByInitData, pdfIsLoading, saveLayout,
|
||||
getWndByLayout,
|
||||
JSONToCenter,
|
||||
newModelByInitData,
|
||||
pdfIsLoading,
|
||||
saveLayout,
|
||||
setPanelFocus,
|
||||
switchWnd
|
||||
} from "./util";
|
||||
|
|
@ -20,7 +23,7 @@ import {
|
|||
} from "../protyle/util/hasClosest";
|
||||
import {Constants} from "../constants";
|
||||
/// #if !BROWSER
|
||||
import {webFrame, ipcRenderer} from "electron";
|
||||
import {ipcRenderer, webFrame} from "electron";
|
||||
import {setModelsHash, setTabPosition} from "../window/setHeader";
|
||||
/// #endif
|
||||
import {Search} from "../search";
|
||||
|
|
@ -198,16 +201,24 @@ export class Wnd {
|
|||
}
|
||||
});
|
||||
let dragleaveTimeout: number;
|
||||
let headerDragCounter = 0;
|
||||
this.headersElement.parentElement.addEventListener("dragleave", function () {
|
||||
clearTimeout(dragleaveTimeout);
|
||||
// 窗口拖拽到新窗口时,不 drop 无法移除 clone 的元素
|
||||
dragleaveTimeout = window.setTimeout(() => {
|
||||
document.querySelectorAll(".layout-tab-bar li[data-clone='true']").forEach(item => {
|
||||
item.remove();
|
||||
});
|
||||
}, 1000);
|
||||
const it = this as HTMLElement;
|
||||
it.classList.remove("layout-tab-bars--drag");
|
||||
headerDragCounter--;
|
||||
if (headerDragCounter === 0) {
|
||||
clearTimeout(dragleaveTimeout);
|
||||
// 窗口拖拽到新窗口时,不 drop 无法移除 clone 的元素
|
||||
dragleaveTimeout = window.setTimeout(() => {
|
||||
document.querySelectorAll(".layout-tab-bar li[data-clone='true']").forEach(item => {
|
||||
item.remove();
|
||||
});
|
||||
}, 1000);
|
||||
const it = this as HTMLElement;
|
||||
it.classList.remove("layout-tab-bars--drag");
|
||||
}
|
||||
});
|
||||
this.headersElement.parentElement.addEventListener("dragenter", (event) => {
|
||||
event.preventDefault();
|
||||
headerDragCounter++;
|
||||
});
|
||||
this.headersElement.parentElement.addEventListener("drop", function (event: DragEvent & {
|
||||
target: HTMLElement
|
||||
|
|
|
|||
|
|
@ -451,7 +451,9 @@ export class Files extends Model {
|
|||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
liElement.classList.remove("dragover__top", "dragover__bottom", "dragover");
|
||||
this.element.querySelectorAll(".dragover, .dragover__bottom, .dragover__top").forEach((item: HTMLElement) => {
|
||||
item.classList.remove("dragover", "dragover__bottom", "dragover__top");
|
||||
});
|
||||
let gutterType = "";
|
||||
for (const item of event.dataTransfer.items) {
|
||||
if (item.type.startsWith(Constants.SIYUAN_DROP_GUTTER)) {
|
||||
|
|
@ -510,10 +512,18 @@ export class Files extends Model {
|
|||
liElement.classList.add("dragover");
|
||||
event.preventDefault();
|
||||
});
|
||||
let counter = 0;
|
||||
this.element.addEventListener("dragleave", () => {
|
||||
this.element.querySelectorAll(".dragover, .dragover__bottom, .dragover__top").forEach((item: HTMLElement) => {
|
||||
item.classList.remove("dragover", "dragover__bottom", "dragover__top");
|
||||
});
|
||||
counter--;
|
||||
if (counter === 0) {
|
||||
this.element.querySelectorAll(".dragover, .dragover__bottom, .dragover__top").forEach((item: HTMLElement) => {
|
||||
item.classList.remove("dragover", "dragover__bottom", "dragover__top");
|
||||
});
|
||||
}
|
||||
});
|
||||
this.element.addEventListener("dragenter", (event) => {
|
||||
event.preventDefault();
|
||||
counter++;
|
||||
});
|
||||
this.element.addEventListener("drop", async (event: DragEvent & { target: HTMLElement }) => {
|
||||
const newElement = this.element.querySelector(".dragover, .dragover__bottom, .dragover__top");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue