diff --git a/src/vs/code/electron-main/menus.ts b/src/vs/code/electron-main/menus.ts index ede6bf9306ad5294d72aa0e645b9fb51d8672028..9725c2a12191cca5d12fa1ea50b0c3b0713f3c36 100644 --- a/src/vs/code/electron-main/menus.ts +++ b/src/vs/code/electron-main/menus.ts @@ -660,7 +660,12 @@ export class VSCodeMenu { private toggleDevTools(): void { const w = this.windowsService.getFocusedWindow(); if (w && w.win) { - w.win.webContents.toggleDevTools(); + const contents = w.win.webContents; + if (w.hasHiddenTitleBarStyle() && !w.win.isFullScreen() && !contents.isDevToolsOpened()) { + contents.openDevTools({ mode: 'undocked' }); // due to https://github.com/electron/electron/issues/3647 + } else { + contents.toggleDevTools(); + } } } diff --git a/src/vs/code/electron-main/window.ts b/src/vs/code/electron-main/window.ts index 14a6082dd4351d9c26aa36a61cdb7138619c7e96..98b9fc294c3e2ec7ee7bc03af70d9135cc3185ac 100644 --- a/src/vs/code/electron-main/window.ts +++ b/src/vs/code/electron-main/window.ts @@ -227,6 +227,10 @@ export class VSCodeWindow { this.registerListeners(); } + public hasHiddenTitleBarStyle(): boolean { + return this.options && this.options.titleBarStyle === 'custom'; + } + public get isPluginDevelopmentHost(): boolean { return !!this._extensionDevelopmentPath; } diff --git a/src/vs/platform/windows/electron-main/windowsService.ts b/src/vs/platform/windows/electron-main/windowsService.ts index a45b968ae9830d482409e878185fe09b41296d32..4b36cfab711c2c66f4fd99a9da1e5bb18e04e188 100644 --- a/src/vs/platform/windows/electron-main/windowsService.ts +++ b/src/vs/platform/windows/electron-main/windowsService.ts @@ -61,7 +61,12 @@ export class WindowsService implements IWindowsService { const vscodeWindow = this.windowsMainService.getWindowById(windowId); if (vscodeWindow) { - vscodeWindow.win.webContents.toggleDevTools(); + const contents = vscodeWindow.win.webContents; + if (vscodeWindow.hasHiddenTitleBarStyle() && !vscodeWindow.win.isFullScreen() && !contents.isDevToolsOpened()) { + contents.openDevTools({ mode: 'undocked' }); // due to https://github.com/electron/electron/issues/3647 + } else { + contents.toggleDevTools(); + } } return TPromise.as(null);