diff --git a/app/src/layout/topBar.ts b/app/src/layout/topBar.ts index c95b99fd3..3a3c10613 100644 --- a/app/src/layout/topBar.ts +++ b/app/src/layout/topBar.ts @@ -117,7 +117,6 @@ export const initBar = (app: App) => { event.stopPropagation(); break; } else if (targetId === "barExit") { - showMessage(window.siyuan.languages["_kernel"][95]); exportLayout({ reload: false, onlyData: false, diff --git a/app/src/menus/workspace.ts b/app/src/menus/workspace.ts index 00f19631f..aed4951c9 100644 --- a/app/src/menus/workspace.ts +++ b/app/src/menus/workspace.ts @@ -7,7 +7,7 @@ import {getOpenNotebookCount, originalPath, pathPosix, showFileInFolder} from ". import {fetchNewDailyNote, mountHelp, newDailyNote} from "../util/mount"; import {fetchPost} from "../util/fetch"; import {Constants} from "../constants"; -import {isInAndroid, isInIOS, setStorageVal, writeText} from "../protyle/util/compatibility"; +import {isInAndroid, isInIOS, isIPad, setStorageVal, writeText} from "../protyle/util/compatibility"; import {openCard} from "../card/openCard"; import {openSetting} from "../config"; import {getAllDocks} from "../layout/getAll"; @@ -422,6 +422,21 @@ export const workspaceMenu = (app: App, rect: DOMRect) => { } }).element); /// #endif + if (isIPad() || isInAndroid() || !isBrowser()) { + window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element); + window.siyuan.menus.menu.append(new MenuItem({ + label: window.siyuan.languages.safeQuit, + icon: "iconQuit", + click: () => { + exportLayout({ + reload: false, + onlyData: false, + errorExit: true, + cb: exitSiYuan + }); + } + }).element); + } window.siyuan.menus.menu.popup({x: rect.left, y: rect.bottom}); }); };