mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-20 16:40:13 +01:00
This commit is contained in:
parent
fd2251348a
commit
4d8b826e29
3 changed files with 17 additions and 15 deletions
|
|
@ -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";
|
||||
|
||||
// 渲染进程调主进程
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue