This commit is contained in:
parent
8963c4d817
commit
a7fae1d4fd
2 changed files with 77 additions and 46 deletions
|
@ -1,10 +1,11 @@
|
|||
import {Wnd} from "./Wnd";
|
||||
import {genUUID} from "../util/genID";
|
||||
import {addResize} from "./util";
|
||||
import {addResize, fixWndFlex1} from "./util";
|
||||
import {resizeTabs} from "./tabUtil";
|
||||
/// #if MOBILE
|
||||
// 检测移动端是否引入了桌面端的代码
|
||||
console.error("Need remove unused code");
|
||||
|
||||
/// #endif
|
||||
|
||||
export class Layout {
|
||||
|
@ -77,9 +78,6 @@ export class Layout {
|
|||
this.children.find((item, index) => {
|
||||
if (item.id === id) {
|
||||
this.children.splice(index + 1, 0, child);
|
||||
item.element.style.width = "";
|
||||
item.element.style.height = "";
|
||||
item.element.classList.add("fn__flex-1");
|
||||
if (this.direction === "lr") {
|
||||
// 向右分屏,左侧文档抖动,移除动画和边距
|
||||
item.element.querySelectorAll(".protyle-content").forEach((element: HTMLElement) => {
|
||||
|
@ -95,12 +93,9 @@ export class Layout {
|
|||
}
|
||||
});
|
||||
}
|
||||
fixWndFlex1(this);
|
||||
addResize(child);
|
||||
resizeTabs(false);
|
||||
// https://ld246.com/article/1669858316295
|
||||
if (this.direction === "tb") {
|
||||
child.element.style.minHeight = "64px";
|
||||
}
|
||||
child.parent = this;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,39 +1,39 @@
|
|||
import { Layout } from "./index";
|
||||
import { Wnd } from "./Wnd";
|
||||
import { Tab } from "./Tab";
|
||||
import { Model } from "./Model";
|
||||
import { Graph } from "./dock/Graph";
|
||||
import { Editor } from "../editor";
|
||||
import { Files } from "./dock/Files";
|
||||
import { Outline } from "./dock/Outline";
|
||||
import { Bookmark } from "./dock/Bookmark";
|
||||
import { Tag } from "./dock/Tag";
|
||||
import { getAllModels, getAllTabs } from "./getAll";
|
||||
import { Asset } from "../asset";
|
||||
import { Search } from "../search";
|
||||
import { Dock } from "./dock";
|
||||
import { focusByOffset, focusByRange, getSelectionOffset } from "../protyle/util/selection";
|
||||
import { hideElements } from "../protyle/ui/hideElements";
|
||||
import { fetchPost } from "../util/fetch";
|
||||
import { hasClosestBlock, hasClosestByClassName } from "../protyle/util/hasClosest";
|
||||
import { getContenteditableElement } from "../protyle/wysiwyg/getBlock";
|
||||
import { Constants } from "../constants";
|
||||
import { saveScroll } from "../protyle/scroll/saveScroll";
|
||||
import { Backlink } from "./dock/Backlink";
|
||||
import { openFileById } from "../editor/util";
|
||||
import { isWindow } from "../util/functions";
|
||||
import {Layout} from "./index";
|
||||
import {Wnd} from "./Wnd";
|
||||
import {Tab} from "./Tab";
|
||||
import {Model} from "./Model";
|
||||
import {Graph} from "./dock/Graph";
|
||||
import {Editor} from "../editor";
|
||||
import {Files} from "./dock/Files";
|
||||
import {Outline} from "./dock/Outline";
|
||||
import {Bookmark} from "./dock/Bookmark";
|
||||
import {Tag} from "./dock/Tag";
|
||||
import {getAllModels, getAllTabs} from "./getAll";
|
||||
import {Asset} from "../asset";
|
||||
import {Search} from "../search";
|
||||
import {Dock} from "./dock";
|
||||
import {focusByOffset, focusByRange, getSelectionOffset} from "../protyle/util/selection";
|
||||
import {hideElements} from "../protyle/ui/hideElements";
|
||||
import {fetchPost} from "../util/fetch";
|
||||
import {hasClosestBlock, hasClosestByClassName} from "../protyle/util/hasClosest";
|
||||
import {getContenteditableElement} from "../protyle/wysiwyg/getBlock";
|
||||
import {Constants} from "../constants";
|
||||
import {saveScroll} from "../protyle/scroll/saveScroll";
|
||||
import {Backlink} from "./dock/Backlink";
|
||||
import {openFileById} from "../editor/util";
|
||||
import {isWindow} from "../util/functions";
|
||||
/// #if !BROWSER
|
||||
import { setTabPosition } from "../window/setHeader";
|
||||
import {setTabPosition} from "../window/setHeader";
|
||||
/// #endif
|
||||
import { showMessage } from "../dialog/message";
|
||||
import { getIdZoomInByPath } from "../util/pathName";
|
||||
import { Custom } from "./dock/Custom";
|
||||
import { newCardModel } from "../card/newCardTab";
|
||||
import { App } from "../index";
|
||||
import { afterLoadPlugin } from "../plugin/loader";
|
||||
import { setTitle } from "../dialog/processSystem";
|
||||
import { newCenterEmptyTab, resizeTabs } from "./tabUtil";
|
||||
import { setStorageVal } from "../protyle/util/compatibility";
|
||||
import {showMessage} from "../dialog/message";
|
||||
import {getIdZoomInByPath} from "../util/pathName";
|
||||
import {Custom} from "./dock/Custom";
|
||||
import {newCardModel} from "../card/newCardTab";
|
||||
import {App} from "../index";
|
||||
import {afterLoadPlugin} from "../plugin/loader";
|
||||
import {setTitle} from "../dialog/processSystem";
|
||||
import {newCenterEmptyTab, resizeTabs} from "./tabUtil";
|
||||
import {setStorageVal} from "../protyle/util/compatibility";
|
||||
|
||||
export const setPanelFocus = (element: Element) => {
|
||||
if (element.getAttribute("data-type") === "wnd") {
|
||||
|
@ -169,7 +169,7 @@ const dockToJSON = (dock: Dock) => {
|
|||
};
|
||||
|
||||
export const resetLayout = () => {
|
||||
fetchPost("/api/system/setUILayout", { layout: {} }, () => {
|
||||
fetchPost("/api/system/setUILayout", {layout: {}}, () => {
|
||||
window.siyuan.storage[Constants.LOCAL_FILEPOSITION] = {};
|
||||
setStorageVal(Constants.LOCAL_FILEPOSITION, window.siyuan.storage[Constants.LOCAL_FILEPOSITION]);
|
||||
window.siyuan.storage[Constants.LOCAL_DIALOGPOSITION] = {};
|
||||
|
@ -290,9 +290,9 @@ const JSONToDock = (json: any, app: App) => {
|
|||
initInternalDock(existItem);
|
||||
});
|
||||
window.siyuan.layout.centerLayout = window.siyuan.layout.layout.children[0].children[1] as Layout;
|
||||
window.siyuan.layout.leftDock = new Dock({ position: "Left", data: json.left, app });
|
||||
window.siyuan.layout.rightDock = new Dock({ position: "Right", data: json.right, app });
|
||||
window.siyuan.layout.bottomDock = new Dock({ position: "Bottom", data: json.bottom, app });
|
||||
window.siyuan.layout.leftDock = new Dock({position: "Left", data: json.left, app});
|
||||
window.siyuan.layout.rightDock = new Dock({position: "Right", data: json.right, app});
|
||||
window.siyuan.layout.bottomDock = new Dock({position: "Bottom", data: json.bottom, app});
|
||||
};
|
||||
|
||||
export const JSONToCenter = (
|
||||
|
@ -907,3 +907,39 @@ export const adjustLayout = (layout: Layout = window.siyuan.layout.centerLayout.
|
|||
}
|
||||
});
|
||||
};
|
||||
|
||||
export const fixWndFlex1 = (layout: Layout) => {
|
||||
if (layout.children.length < 2) {
|
||||
return
|
||||
}
|
||||
if (layout.children[layout.children.length - 2].element.classList.contains("fn__flex-1")) {
|
||||
return;
|
||||
}
|
||||
layout.children.forEach((item, index) => {
|
||||
if (index !== layout.children.length - 2) {
|
||||
if (layout.direction === "lr") {
|
||||
if (item.element.classList.contains("fn__flex-1")) {
|
||||
item.element.style.width = item.element.clientWidth + "px"
|
||||
item.element.classList.remove("fn__flex-1")
|
||||
}
|
||||
} else {
|
||||
if (item.element.classList.contains("fn__flex-1")) {
|
||||
item.element.style.height = item.element.clientHeight + "px"
|
||||
item.element.classList.remove("fn__flex-1")
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
const flex1Element = layout.children[layout.children.length - 2].element
|
||||
if (layout.direction === "lr") {
|
||||
if (flex1Element.style.width) {
|
||||
flex1Element.style.width = ""
|
||||
flex1Element.classList.add("fn__flex-1")
|
||||
}
|
||||
} else {
|
||||
if (flex1Element.style.height) {
|
||||
flex1Element.style.height = ""
|
||||
flex1Element.classList.add("fn__flex-1")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue