diff --git a/app/lib/app.ts b/app/lib/app.ts index 036e1cfb..5afa72d5 100644 --- a/app/lib/app.ts +++ b/app/lib/app.ts @@ -22,6 +22,7 @@ export class Application { private ptyManager = new PTYManager() private windows: Window[] = [] private globalHotkey$ = new Subject() + private quitRequested = false userPluginsPath: string constructor () { @@ -82,6 +83,12 @@ export class Application { for (const flag of configData.flags || [['force_discrete_gpu', '0']]) { app.commandLine.appendSwitch(flag[0], flag[1]) } + + app.on('window-all-closed', () => { + if (this.quitRequested || process.platform !== 'darwin') { + app.quit() + } + }) } init (): void { @@ -226,7 +233,8 @@ export class Application { { label: 'Quit', accelerator: 'Cmd+Q', - click () { + click: () => { + this.quitRequested = true app.quit() }, }, diff --git a/app/lib/index.ts b/app/lib/index.ts index 06189d05..654e52ed 100644 --- a/app/lib/index.ts +++ b/app/lib/index.ts @@ -26,12 +26,6 @@ app.on('activate', () => { } }) -app.on('window-all-closed', () => { - if (process.platform !== 'darwin') { - app.quit() - } -}) - process.on('uncaughtException' as any, err => { console.log(err) application.broadcast('uncaughtException', err)