35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
const { app } = require('electron')
|
|
const { mainOn, mainHandle, NAMES: { mainWindow: ipcMainWindowNames } } = require('../../common/ipc')
|
|
const { isLinux } = require('@common/utils')
|
|
|
|
mainOn(ipcMainWindowNames.min, event => {
|
|
if (global.modules.mainWindow) {
|
|
global.modules.mainWindow.minimize()
|
|
}
|
|
})
|
|
mainOn(ipcMainWindowNames.max, event => {
|
|
if (global.modules.mainWindow) {
|
|
global.modules.mainWindow.maximize()
|
|
}
|
|
})
|
|
mainOn(ipcMainWindowNames.close, (event, isForce) => {
|
|
if (isForce) return app.exit(0)
|
|
global.isTrafficLightClose = true
|
|
if (global.modules.mainWindow) global.modules.mainWindow.close()
|
|
})
|
|
mainHandle(ipcMainWindowNames.fullscreen, async(event, isFullscreen) => {
|
|
if (!global.modules.mainWindow) return false
|
|
if (isLinux) { // linux 需要先设置为可调整窗口大小才能全屏
|
|
if (isFullscreen) {
|
|
await global.modules.mainWindow.setResizable(isFullscreen)
|
|
await global.modules.mainWindow.setFullScreen(isFullscreen)
|
|
} else {
|
|
await global.modules.mainWindow.setFullScreen(isFullscreen)
|
|
await global.modules.mainWindow.setResizable(isFullscreen)
|
|
}
|
|
} else {
|
|
await global.modules.mainWindow.setFullScreen(isFullscreen)
|
|
}
|
|
return isFullscreen
|
|
})
|