fix mas rejection on window menu

This commit is contained in:
Bruce Liu 2020-07-01 22:57:49 +08:00
parent 0848e8767d
commit f3aac967eb
3 changed files with 21 additions and 9 deletions

View File

@ -27,7 +27,7 @@ if (process.platform === "darwin") {
{
label: "Application",
submenu: [
{ label: "Quit", accelerator: "Command+Q", click: () => { app.quit() } }
{ label: "Quit", accelerator: "Command+Q", click: () => { if (winManager.hasWindow) winManager.mainWindow.close() } }
]
},
{
@ -40,6 +40,14 @@ if (process.platform === "darwin") {
{ label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" },
{ label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" }
]
},
{
label: "Window",
submenu: [
{ label: "Close", accelerator: "Command+W", click: () => { if (winManager.hasWindow) winManager.mainWindow.close() } },
{ label: "Minimize", accelerator: "Command+M", click: () => { if (winManager.hasWindow()) winManager.mainWindow.minimize() } },
{ label: "Zoom", click: () => winManager.zoom() }
]
}
]
Menu.setApplicationMenu(Menu.buildFromTemplate(template))
@ -57,7 +65,7 @@ app.on("window-all-closed", () => {
if (restarting) {
restarting = false
winManager.createWindow()
} else if (process.platform !== "darwin") {
} else {
app.quit()
}
})

View File

@ -111,13 +111,7 @@ export function setUtilsListeners(manager: WindowManager) {
})
ipcMain.handle("maximize-window", () => {
if (manager.hasWindow) {
if (manager.mainWindow.isMaximized()) {
manager.mainWindow.unmaximize()
} else {
manager.mainWindow.maximize()
}
}
manager.zoom()
})
ipcMain.on("is-maximized", (event) => {

View File

@ -80,6 +80,16 @@ export class WindowManager {
}
}
zoom = () => {
if (this.hasWindow()) {
if (this.mainWindow.isMaximized()) {
this.mainWindow.unmaximize()
} else {
this.mainWindow.maximize()
}
}
}
hasWindow = () => {
return this.mainWindow !== null && !this.mainWindow.isDestroyed()
}