diff --git a/src/main/events/trafficLight.js b/src/main/events/trafficLight.js index 2be309f5..d0a7e046 100644 --- a/src/main/events/trafficLight.js +++ b/src/main/events/trafficLight.js @@ -1,7 +1,6 @@ // const { app } = require('electron') const { mainOn } = require('../../common/ipc') - mainOn('min', event => { if (global.mainWindow) { global.mainWindow.minimize() @@ -12,10 +11,15 @@ mainOn('max', event => { global.mainWindow.maximize() } }) -mainOn('close', event => { +mainOn('close', (event, arg) => { if (global.mainWindow) { + console.log('close', arg) + if (arg && arg.min) { + global.mainWindow.hide() + global.mainWindow.setSkipTaskbar(true) + return + } // global.mainWindowdow.destroy() - // console.log('close') // app.quit() global.mainWindow.close() } diff --git a/src/main/index.js b/src/main/index.js index 383b9426..dac06372 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -85,13 +85,6 @@ function createWindow() { : mainWindow.setSkipTaskbar(true) }) - // 关闭事件处理 - mainWindow.on('close', e => { - e.preventDefault() - mainWindow.hide() - mainWindow.setSkipTaskbar(true) - }) - mainWindow.loadURL(winURL) winEvent(mainWindow) diff --git a/src/renderer/components/core/Toolbar.vue b/src/renderer/components/core/Toolbar.vue index f778c611..b35d3987 100644 --- a/src/renderer/components/core/Toolbar.vue +++ b/src/renderer/components/core/Toolbar.vue @@ -119,7 +119,9 @@ export default { rendererSend('max') }, close() { - rendererSend('close') + rendererSend('close', { + min: this.setting.minClose, + }) }, }, } diff --git a/src/renderer/lang/cns/view/setting.json b/src/renderer/lang/cns/view/setting.json index 29b99e94..aa46ac8e 100644 --- a/src/renderer/lang/cns/view/setting.json +++ b/src/renderer/lang/cns/view/setting.json @@ -18,6 +18,8 @@ "basic_window_size_medium": "中", "basic_window_size_big": "大", "basic_window_size_larger": "较大", + "basic_min_title": "关闭时最小化到系统托盘", + "basic_min": "关闭时最小化到系统托盘", "basic_lang_title": "软件显示的语言", "basic_lang": "语言", diff --git a/src/renderer/main.js b/src/renderer/main.js index 537ff459..1c934abe 100644 --- a/src/renderer/main.js +++ b/src/renderer/main.js @@ -20,6 +20,7 @@ sync(store, router) // } +Vue.config.devTools = process.env.NODE_ENV !== 'production' Vue.config.productionTip = false new Vue({ diff --git a/src/renderer/utils/index.js b/src/renderer/utils/index.js index 2d4582a7..28e505c5 100644 --- a/src/renderer/utils/index.js +++ b/src/renderer/utils/index.js @@ -240,6 +240,7 @@ export const updateSetting = (setting, version) => { }, windowSizeId: 2, themeId: 0, + minClose: false, langId: 'cns', sourceId: 'kw', apiSource: 'temp', @@ -264,6 +265,10 @@ export const updateSetting = (setting, version) => { setting = defaultSetting } if (setting.apiSource != 'temp') setting.apiSource = 'test' // 强制设置回 test 接口源 + // 存储中没有这个设置项时,设置为 false + if (typeof setting.minClose === 'undefined') { + setting.minClose = false + } return { setting, version: defaultVersion } } diff --git a/src/renderer/views/Setting.vue b/src/renderer/views/Setting.vue index 21d17c45..4dce3714 100644 --- a/src/renderer/views/Setting.vue +++ b/src/renderer/views/Setting.vue @@ -28,6 +28,11 @@ div.scroll(:class="$style.setting") material-checkbox(v-for="(item, index) in windowSizeList" :id="`setting_window_size_${item.id}`" name="setting_window_size" @change="handleWindowSizeChange" :class="$style.gapLeft" need v-model="current_setting.windowSizeId" :value="item.id" :label="$t('view.setting.basic_window_size_' + item.name)" :key="item.id") + dd(:title="$t('view.setting.basic_min_title')") + h3 {{$t('view.setting.basic_min')}} + div + material-checkbox(id="setting_min" v-model="current_setting.minClose" :label="$t('view.setting.is_enable')") + dd(:title="$t('view.setting.basic_lang_title')") h3 {{$t('view.setting.basic_lang')}} div @@ -361,6 +366,7 @@ export default { themeId: 0, sourceId: 0, randomAnimate: true, + minClose: true, apiSource: 'messoer', }, languageList,