diff --git a/app/src/constants.ts b/app/src/constants.ts index d58143f16..1a67160ef 100644 --- a/app/src/constants.ts +++ b/app/src/constants.ts @@ -18,7 +18,6 @@ export abstract class Constants { public static readonly SIYUAN_DROP_FILE: string = "application/siyuan-file"; public static readonly SIYUAN_DROP_GUTTER: string = "application/siyuan-gutter"; public static readonly SIYUAN_DROP_TAB: string = "application/siyuan-tab"; - public static readonly SIYUAN_DROP_TABTOWINDOW: string = "application/siyuan-tabtowindow"; public static readonly SIYUAN_DROP_EDITOR: string = "application/siyuan-editor"; // 渲染进程调主进程 diff --git a/app/src/layout/Tab.ts b/app/src/layout/Tab.ts index 9f8598bbf..885baa6c8 100644 --- a/app/src/layout/Tab.ts +++ b/app/src/layout/Tab.ts @@ -79,10 +79,9 @@ export class Tab { const tabElement = hasClosestByTag(event.target, "LI"); if (tabElement) { event.dataTransfer.setData("text/html", tabElement.outerHTML); - event.dataTransfer.setData(Constants.SIYUAN_DROP_TAB, this.id); - const modeJSON = {}; + const modeJSON = {id:this.id}; layoutToJSON(this, modeJSON); - event.dataTransfer.setData(Constants.SIYUAN_DROP_TABTOWINDOW, JSON.stringify(modeJSON)); + event.dataTransfer.setData(Constants.SIYUAN_DROP_TAB, JSON.stringify(modeJSON)); event.dataTransfer.dropEffect = "move"; tabElement.style.opacity = "0.1"; window.siyuan.dragElement = this.headElement; diff --git a/app/src/layout/Wnd.ts b/app/src/layout/Wnd.ts index e94fac671..f5484be4e 100644 --- a/app/src/layout/Wnd.ts +++ b/app/src/layout/Wnd.ts @@ -127,7 +127,9 @@ export class Wnd { target = target.parentElement; } }); - this.headersElement.parentElement.addEventListener("dragover", function (event: DragEvent & { target: HTMLElement }) { + this.headersElement.parentElement.addEventListener("dragover", function (event: DragEvent & { + target: HTMLElement + }) { const it = this as HTMLElement; if (event.dataTransfer.types.includes(Constants.SIYUAN_DROP_FILE)) { event.preventDefault(); @@ -193,7 +195,9 @@ export class Wnd { const it = this as HTMLElement; it.classList.remove("layout-tab-bars--drag"); }); - this.headersElement.parentElement.addEventListener("drop", function (event: DragEvent & { target: HTMLElement }) { + this.headersElement.parentElement.addEventListener("drop", function (event: DragEvent & { + target: HTMLElement + }) { const it = this as HTMLElement; if (event.dataTransfer.types.includes(Constants.SIYUAN_DROP_FILE)) { // 文档树拖拽 @@ -210,15 +214,15 @@ export class Wnd { it.classList.remove("layout-tab-bars--drag"); return; } - const tabId = event.dataTransfer.getData(Constants.SIYUAN_DROP_TAB); - let oldTab = getInstanceById(tabId) as Tab; + const tabData = JSON.parse(event.dataTransfer.getData(Constants.SIYUAN_DROP_TAB)) + let oldTab = getInstanceById(tabData.id) as Tab; const wnd = getInstanceById(it.parentElement.getAttribute("data-id")) as Wnd; /// #if !BROWSER if (!oldTab) { // 从主窗口拖拽到页签新窗口 if (wnd instanceof Wnd) { - JSONToCenter(JSON.parse(event.dataTransfer.getData(Constants.SIYUAN_DROP_TABTOWINDOW)), wnd); + JSONToCenter(tabData, wnd); oldTab = wnd.children[wnd.children.length - 1]; - ipcRenderer.send(Constants.SIYUAN_CLOSETAB, tabId); + ipcRenderer.send(Constants.SIYUAN_CLOSETAB, tabData.id); it.querySelector("li[data-clone='true']").remove(); wnd.switchTab(oldTab.headElement); } @@ -320,13 +324,13 @@ export class Wnd { dragElement.classList.add("fn__none"); const targetWndElement = event.target.parentElement.parentElement; const targetWnd = getInstanceById(targetWndElement.getAttribute("data-id")) as Wnd; - const tabId = event.dataTransfer.getData(Constants.SIYUAN_DROP_TAB); - let oldTab = getInstanceById(tabId) as Tab; + const tabData = JSON.parse(event.dataTransfer.getData(Constants.SIYUAN_DROP_TAB)) + let oldTab = getInstanceById(tabData.id) as Tab; /// #if !BROWSER if (!oldTab) { // 从主窗口拖拽到页签新窗口 - JSONToCenter(JSON.parse(event.dataTransfer.getData(Constants.SIYUAN_DROP_TABTOWINDOW)), this); + JSONToCenter(tabData, this); oldTab = this.children[this.children.length - 1]; - ipcRenderer.send(Constants.SIYUAN_CLOSETAB, tabId); + ipcRenderer.send(Constants.SIYUAN_CLOSETAB, tabData.id); } /// #endif if (!oldTab) { @@ -370,7 +374,7 @@ export class Wnd { return; } - if (targetWndElement.contains(document.querySelector(`[data-id="${tabId}"]`))) { + if (targetWndElement.contains(document.querySelector(`[data-id="${tabData.id}"]`))) { return; } if (targetWnd) {