修复 MacOS 下点击 dock 右键菜单的退出按钮时,程序没有退出的问题(#1923)

pull/1935/head
lyswhut 2024-06-03 18:29:54 +08:00
parent b7bb21f091
commit 69ba619f24
5 changed files with 15 additions and 19 deletions

View File

@ -5,7 +5,7 @@ import { URL_SCHEME_RXP } from '@common/constants'
import { getTheme, initHotKey, initSetting, parseEnvParams } from './utils' import { getTheme, initHotKey, initSetting, parseEnvParams } from './utils'
import { navigationUrlWhiteList } from '@common/config' import { navigationUrlWhiteList } from '@common/config'
import defaultSetting from '@common/defaultSetting' import defaultSetting from '@common/defaultSetting'
import { closeWindow, isExistWindow as isExistMainWindow, showWindow as showMainWindow } from './modules/winMain' import { isExistWindow as isExistMainWindow, showWindow as showMainWindow } from './modules/winMain'
import { createAppEvent, createDislikeEvent, createListEvent } from '@main/event' import { createAppEvent, createDislikeEvent, createListEvent } from '@main/event'
import { isMac, log } from '@common/utils' import { isMac, log } from '@common/utils'
import createWorkers from './worker' import createWorkers from './worker'
@ -158,6 +158,9 @@ export const listenerAppEvent = (startApp: () => void) => {
} }
}) })
app.on('before-quit', () => {
global.lx.isSkipTrayQuit = true
})
app.on('window-all-closed', () => { app.on('window-all-closed', () => {
if (isMac) return if (isMac) return
@ -209,7 +212,6 @@ export const initAppSetting = async() => {
if (!global.lx) { if (!global.lx) {
const config = await initHotKey() const config = await initHotKey()
global.lx = { global.lx = {
isTrafficLightClose: false,
isSkipTrayQuit: false, isSkipTrayQuit: false,
// mainWindowClosed: true, // mainWindowClosed: true,
event_app: createAppEvent(), event_app: createAppEvent(),
@ -275,5 +277,5 @@ export const initAppSetting = async() => {
export const quitApp = () => { export const quitApp = () => {
global.lx.isSkipTrayQuit = true global.lx.isSkipTrayQuit = true
closeWindow() app.quit()
} }

View File

@ -13,19 +13,15 @@ const winEvent = () => {
if (!browserWindow) return if (!browserWindow) return
browserWindow.on('close', event => { browserWindow.on('close', event => {
if ( if (global.lx.isSkipTrayQuit || !global.lx.appSetting['tray.enable']) {
global.lx.appSetting['tray.enable'] && browserWindow!.setProgressBar(-1)
(global.lx.isTrafficLightClose || (isWin && !global.lx.isSkipTrayQuit)) // global.lx.mainWindowClosed = true
) { global.lx.event_app.main_window_close()
global.lx.isTrafficLightClose &&= false
event.preventDefault()
browserWindow!.hide()
return return
} }
browserWindow!.setProgressBar(-1) event.preventDefault()
// global.lx.mainWindowClosed = true browserWindow!.hide()
global.lx.event_app.main_window_close()
}) })
browserWindow.on('closed', () => { browserWindow.on('closed', () => {

View File

@ -61,7 +61,6 @@ export default () => {
app.exit(0) app.exit(0)
return return
} }
global.lx.isTrafficLightClose = true
closeWindow() closeWindow()
}) })
// 全屏 // 全屏

View File

@ -11,10 +11,6 @@ interface Lx {
config: LX.HotKeyConfigAll config: LX.HotKeyConfigAll
state: LX.HotKeyState state: LX.HotKeyState
} }
/**
* 绿
*/
isTrafficLightClose: boolean
/** /**
* 退 * 退
*/ */

View File

@ -94,7 +94,10 @@ export default {
}, 2e3) }, 2e3)
}, },
handleClose(isExit) { handleClose(isExit) {
if (isExit) { quitApp(true); return } if (isExit) {
quitApp(true)
return
}
isShowPact.value = false isShowPact.value = false
}, },
openUrl(url) { openUrl(url) {