Kaynağa Gözat

:recycle: https://github.com/siyuan-note/siyuan/issues/7284

Vanessa 2 yıl önce
ebeveyn
işleme
4d8b826e29
3 değiştirilmiş dosya ile 17 ekleme ve 15 silme
  1. 0 1
      app/src/constants.ts
  2. 2 3
      app/src/layout/Tab.ts
  3. 15 11
      app/src/layout/Wnd.ts

+ 0 - 1
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";
 
     // 渲染进程调主进程

+ 2 - 3
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;

+ 15 - 11
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) {