diff --git a/app/src/layout/Wnd.ts b/app/src/layout/Wnd.ts index 395352177..ffb9d7748 100644 --- a/app/src/layout/Wnd.ts +++ b/app/src/layout/Wnd.ts @@ -508,7 +508,7 @@ export class Wnd { } } - public addTab(tab: Tab, keepCursor = false, isSaveLayout = true) { + public addTab(tab: Tab, keepCursor = false, isSaveLayout = true, activeTime?: string) { if (keepCursor) { tab.headElement?.classList.remove("item--focus"); tab.panelElement.classList.add("fn__none"); @@ -548,8 +548,7 @@ export class Wnd { event.stopPropagation(); event.preventDefault(); }); - - tab.headElement.setAttribute("data-activetime", (new Date()).getTime().toString()); + tab.headElement.setAttribute("data-activetime", activeTime || (new Date()).getTime().toString()); } const containerElement = this.element.querySelector(".layout-tab-container"); if (!containerElement.querySelector(".fn__flex-1")) { diff --git a/app/src/layout/util.ts b/app/src/layout/util.ts index ff76d1a71..2b97cff47 100644 --- a/app/src/layout/util.ts +++ b/app/src/layout/util.ts @@ -366,7 +366,7 @@ export const JSONToCenter = ( if (json.active && child.headElement) { child.headElement.setAttribute("data-init-active", "true"); } - (layout as Wnd).addTab(child, false, false); + (layout as Wnd).addTab(child, false, false, json.activeTime); (layout as Wnd).showHeading(); } else if (json.instance === "Editor" && json.blockId) { if (window.siyuan.config.fileTree.openFilesUseCurrentTab) { @@ -548,6 +548,7 @@ export const layoutToJSON = (layout: Layout | Wnd | Tab | Model, json: any, brea } } json.instance = "Tab"; + json.activeTime = layout.headElement.getAttribute("data-activetime"); } else if (layout instanceof Editor) { if (!layout.editor.protyle.notebookId && breakObj) { breakObj.editor = "true"; diff --git a/app/src/types/config.d.ts b/app/src/types/config.d.ts index 20521e1d8..6a6bec038 100644 --- a/app/src/types/config.d.ts +++ b/app/src/types/config.d.ts @@ -1774,6 +1774,10 @@ declare namespace Config { * Tab title */ title?: string; + /** + * Tab recent view time + */ + activeTime?: string; } /** @@ -2292,4 +2296,4 @@ declare namespace Config { */ export type TUILayoutType = "normal" | "center" | "top" | "bottom" | "left" | "right"; -} \ No newline at end of file +}