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", label: "Application",
submenu: [ 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: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" },
{ label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" } { 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)) Menu.setApplicationMenu(Menu.buildFromTemplate(template))
@ -57,7 +65,7 @@ app.on("window-all-closed", () => {
if (restarting) { if (restarting) {
restarting = false restarting = false
winManager.createWindow() winManager.createWindow()
} else if (process.platform !== "darwin") { } else {
app.quit() app.quit()
} }
}) })

View File

@ -111,13 +111,7 @@ export function setUtilsListeners(manager: WindowManager) {
}) })
ipcMain.handle("maximize-window", () => { ipcMain.handle("maximize-window", () => {
if (manager.hasWindow) { manager.zoom()
if (manager.mainWindow.isMaximized()) {
manager.mainWindow.unmaximize()
} else {
manager.mainWindow.maximize()
}
}
}) })
ipcMain.on("is-maximized", (event) => { 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 = () => { hasWindow = () => {
return this.mainWindow !== null && !this.mainWindow.isDestroyed() return this.mainWindow !== null && !this.mainWindow.isDestroyed()
} }