diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js
index 945e78ff..a9aa59d9 100644
--- a/packages/core/src/config/index.js
+++ b/packages/core/src/config/index.js
@@ -18,6 +18,9 @@ module.exports = {
remoteConfig: {
enabled: true,
url: 'https://gitee.com/docmirror/dev-sidecar/raw/master/packages/core/src/config/remote_config.json5'
+ },
+ dock: {
+ hideWhenWinClose: false
}
},
server: {
diff --git a/packages/gui/src/background.js b/packages/gui/src/background.js
index b1d31b4c..ed901db1 100644
--- a/packages/gui/src/background.js
+++ b/packages/gui/src/background.js
@@ -18,7 +18,8 @@ let win
// eslint-disable-next-line no-unused-vars
let tray // 防止被内存清理
let forceClose = false
-
+DevSidecar.api.config.reload()
+let hideDockWhenWinClose = DevSidecar.api.config.get().app.dock.hideWhenWinClose || false
// Scheme must be registered before the app is ready
protocol.registerSchemesAsPrivileged([
{ scheme: 'app', privileges: { secure: true, standard: true } }
@@ -98,7 +99,7 @@ function hideWin () {
return
}
win.hide()
- if (isMac) {
+ if (isMac && hideDockWhenWinClose) {
app.dock.hide()
}
}
@@ -111,23 +112,15 @@ function showWin () {
app.dock.show()
}
-function createWindow () {
+function changeAppConfig (config) {
+ if (config.hideDockWhenWinClose != null) {
+ hideDockWhenWinClose = config.hideDockWhenWinClose
+ }
+}
+
+function createWindow (startHideWindow) {
// Create the browser window.
- let startHideWindow = false
- if (process.argv) {
- const args = minimist(process.argv)
- if (args.hideWindow) {
- startHideWindow = true
- }
-
- log.info('start args', args)
- }
- if (app.getLoginItemSettings().wasOpenedAsHidden) {
- startHideWindow = true
- }
- log.info('start hide window', startHideWindow, app.getLoginItemSettings())
-
win = new BrowserWindow({
width: 900,
height: 750,
@@ -200,6 +193,21 @@ function setDock () {
// -------------执行开始---------------
app.disableHardwareAcceleration() // 禁用gpu
+// 开启后是否默认隐藏window
+let startHideWindow = false
+if (process.argv) {
+ const args = minimist(process.argv)
+ if (args.hideWindow) {
+ startHideWindow = true
+ }
+
+ log.info('start args', args)
+}
+if (app.getLoginItemSettings().wasOpenedAsHidden) {
+ startHideWindow = true
+}
+log.info('start hide window', startHideWindow, app.getLoginItemSettings())
+
// 禁止双开
const isFirstInstance = app.requestSingleInstanceLock()
if (!isFirstInstance) {
@@ -236,7 +244,7 @@ if (!isFirstInstance) {
// On macOS it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (win == null) {
- createWindow()
+ createWindow(false)
} else {
showWin()
}
@@ -257,8 +265,8 @@ if (!isFirstInstance) {
// }
}
try {
- createWindow()
- const context = { win, app, beforeQuit, quit, ipcMain, dialog, log, api: DevSidecar.api }
+ createWindow(startHideWindow)
+ const context = { win, app, beforeQuit, quit, ipcMain, dialog, log, api: DevSidecar.api, changeAppConfig }
backend.install(context) // 模块安装
} catch (err) {
log.info('err', err)
diff --git a/packages/gui/src/view/pages/setting.vue b/packages/gui/src/view/pages/setting.vue
index 659cd7fd..ff473b40 100644
--- a/packages/gui/src/view/pages/setting.vue
+++ b/packages/gui/src/view/pages/setting.vue
@@ -15,6 +15,14 @@
windows下建议开启开机自启。更多说明参考
+
+
+ 关闭窗口时隐藏Dock图标(仅限Mac)
+
+
+ 修改后需要重启应用
+
+
启用远程配置