Vanessa 2023-12-31 12:27:18 +08:00
parent fc71c7abc2
commit 45bfec7d2f
5 changed files with 14 additions and 11 deletions

View file

@ -700,10 +700,11 @@ export class Wnd {
clearCounter();
this.children.find((item, index) => {
if (item.id === id) {
if (item.model instanceof Custom) {
if (item.model.beforeDestroy) {
item.model.beforeDestroy();
}
if (item.model instanceof Custom && item.model.beforeDestroy) {
item.model.beforeDestroy();
}
if (item.model instanceof Editor) {
saveScroll(item.model.editor.protyle);
}
if (this.children.length === 1) {
this.destroyModel(this.children[0].model);
@ -771,7 +772,7 @@ export class Wnd {
item.panelElement.remove();
this.destroyModel(item.model);
this.children.splice(index, 1);
resizeTabs(item.headElement ? true : false);
resizeTabs(false);
return true;
}
});
@ -791,6 +792,7 @@ export class Wnd {
setTitle(window.siyuan.languages.siyuanNote);
}
}
saveLayout();
/// #if !BROWSER
webFrame.clearCache();
ipcRenderer.send(Constants.SIYUAN_CMD, "clearCache");

View file

@ -96,6 +96,7 @@ export class Layout {
});
}
addResize(child);
resizeTabs(false);
// https://ld246.com/article/1669858316295
if (this.direction === "tb") {
child.element.style.minHeight = "64px";

View file

@ -205,7 +205,7 @@ export const saveLayout = () => {
saveCount++;
setTimeout(() => {
saveLayout();
}, Constants.TIMEOUT_LOAD);
}, Constants.TIMEOUT_LOAD * saveCount);
} else {
saveCount = 0;
if (isWindow()) {

View file

@ -6,7 +6,7 @@ import {Constants} from "../../constants";
import {setStorageVal} from "../util/compatibility";
export const saveScroll = (protyle: IProtyle, getObject = false) => {
if (!protyle.wysiwyg.element.firstElementChild || window.siyuan.config.readonly || protyle.element.classList.contains("fn__none")) {
if (!protyle.wysiwyg.element.firstElementChild || window.siyuan.config.readonly) {
// 报错或者空白页面
return undefined;
}

View file

@ -398,8 +398,8 @@ const focusElementById = (protyle: IProtyle, action: string[], scrollAttr?: IScr
if (action.includes(Constants.CB_GET_FOCUS) || action.includes(Constants.CB_GET_HL) || action.includes(Constants.CB_GET_FOCUSFIRST)) {
const contentRect = protyle.contentElement.getBoundingClientRect();
const focusRect = focusElement.getBoundingClientRect();
if (contentRect.top > focusRect.top || contentRect.bottom < focusRect.bottom) {
scrollCenter(protyle, focusElement, !hasScrollTop);
if (!hasScrollTop && (contentRect.top > focusRect.top || contentRect.bottom < focusRect.bottom)) {
scrollCenter(protyle, focusElement, true);
}
} else {
protyle.observerLoad?.disconnect();
@ -413,8 +413,8 @@ const focusElementById = (protyle: IProtyle, action: string[], scrollAttr?: IScr
if (action.includes(Constants.CB_GET_FOCUS) || action.includes(Constants.CB_GET_HL) || action.includes(Constants.CB_GET_FOCUSFIRST)) {
const contentRect = protyle.contentElement.getBoundingClientRect();
const focusRect = focusElement.getBoundingClientRect();
if (contentRect.top > focusRect.top || contentRect.bottom < focusRect.bottom) {
scrollCenter(protyle, focusElement, !hasScrollTop);
if (!hasScrollTop && (contentRect.top > focusRect.top || contentRect.bottom < focusRect.bottom)) {
scrollCenter(protyle, focusElement, true);
}
}
});