diff --git a/OSSREADME.json b/OSSREADME.json index ce9ce6acb8e..1e6fbebfff1 100644 --- a/OSSREADME.json +++ b/OSSREADME.json @@ -57,7 +57,7 @@ }, { "name": "electron", - "version": "0.37.5", + "version": "0.37.6", "license": "MIT", "repositoryURL": "https://github.com/atom/electron", "isProd": true diff --git a/package.json b/package.json index 4a72af69404..07d5c040194 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Code", "version": "1.0.0", - "electronVersion": "0.37.5", + "electronVersion": "0.37.6", "author": { "name": "Microsoft Corporation" }, diff --git a/src/vs/workbench/electron-main/main.ts b/src/vs/workbench/electron-main/main.ts index bbc4d554f8a..fff896be3ec 100644 --- a/src/vs/workbench/electron-main/main.ts +++ b/src/vs/workbench/electron-main/main.ts @@ -5,7 +5,7 @@ 'use strict'; -import {app} from 'electron'; +import {app, ipcMain as ipc} from 'electron'; import fs = require('fs'); import nls = require('vs/nls'); import {assign} from 'vs/base/common/objects'; @@ -101,7 +101,7 @@ function quit(arg?: any) { } } - process.exit(exitCode); + process.exit(exitCode); // in main, process.exit === app.exit } function main(ipcServer: Server, userEnv: env.IProcessEnvironment): void { @@ -140,10 +140,7 @@ function main(ipcServer: Server, userEnv: env.IProcessEnvironment): void { // Set programStart in the global scope global.programStart = env.cliArgs.programStart; - // Dispose on app quit - app.on('will-quit', () => { - env.log('App#dispose: deleting running instance handle'); - + function dispose() { if (ipcServer) { ipcServer.dispose(); ipcServer = null; @@ -154,6 +151,21 @@ function main(ipcServer: Server, userEnv: env.IProcessEnvironment): void { if (windowsMutex) { windowsMutex.release(); } + } + + // Dispose on app quit + app.on('will-quit', () => { + env.log('App#will-quit: disposing resources'); + + dispose(); + }); + + // Dispose on vscode:exit + ipc.on('vscode:exit', (event, code: number) => { + env.log('IPC#vscode:exit', code); + + dispose(); + process.exit(code); // in main, process.exit === app.exit }); // Lifecycle diff --git a/src/vs/workbench/electron-main/window.ts b/src/vs/workbench/electron-main/window.ts index 20b7c7d96a5..6f83d4a9306 100644 --- a/src/vs/workbench/electron-main/window.ts +++ b/src/vs/workbench/electron-main/window.ts @@ -175,7 +175,7 @@ export class VSCodeWindow { height: this.windowState.height, x: this.windowState.x, y: this.windowState.y, - backgroundColor: usesLightTheme ? '#FFFFFF' : platform.isMacintosh ? '#171717' : '#1E1E1E', // https://github.com/electron/electron/issues/5150 + backgroundColor: usesLightTheme ? '#FFFFFF' : platform.isMacintosh ? '#131313' : '#1E1E1E', // https://github.com/electron/electron/issues/5150 minWidth: VSCodeWindow.MIN_WIDTH, minHeight: VSCodeWindow.MIN_HEIGHT, show: showDirectly && this.currentWindowMode !== WindowMode.Maximized, // in case we are maximized, only show later after the call to maximize (see below) diff --git a/src/vs/workbench/electron-main/windows.ts b/src/vs/workbench/electron-main/windows.ts index 0170458c790..e2697e5bbd7 100644 --- a/src/vs/workbench/electron-main/windows.ts +++ b/src/vs/workbench/electron-main/windows.ts @@ -359,12 +359,6 @@ export class WindowsManager { console[logEntry.severity].apply(console, args); }); - ipc.on('vscode:exit', (event, code: number) => { - env.log('IPC#vscode:exit', code); - - process.exit(code); - }); - ipc.on('vscode:closeExtensionHostWindow', (event, extensionDevelopmentPath: string) => { env.log('IPC#vscode:closeExtensionHostWindow', extensionDevelopmentPath);