diff --git a/src/vs/platform/electron/electron-main/electronMainService.ts b/src/vs/platform/electron/electron-main/electronMainService.ts index 24ef0a029abc82b40d1a20188bb67544b5eaea63..abc0ed6e40249d29a8b8aa5b2e380535135efe7a 100644 --- a/src/vs/platform/electron/electron-main/electronMainService.ts +++ b/src/vs/platform/electron/electron-main/electronMainService.ts @@ -157,15 +157,6 @@ export class ElectronMainService implements IElectronMainService { } } - async isWindowFocused(windowId: number | undefined): Promise { - const window = this.windowById(windowId); - if (window) { - return window.win.isFocused(); - } - - return false; - } - async focusWindow(windowId: number | undefined, options?: { windowId?: number; }): Promise { if (options && typeof options.windowId === 'number') { windowId = options.windowId; diff --git a/src/vs/platform/electron/node/electron.ts b/src/vs/platform/electron/node/electron.ts index 294db26343a6f81cd621f5bf00450554bed5afa2..8803fd16b3928ebdb28e83dc1dd7d7addf41c2ef 100644 --- a/src/vs/platform/electron/node/electron.ts +++ b/src/vs/platform/electron/node/electron.ts @@ -43,7 +43,6 @@ export interface IElectronService { unmaximizeWindow(): Promise; minimizeWindow(): Promise; - isWindowFocused(): Promise; focusWindow(options?: { windowId?: number }): Promise; // Dialogs diff --git a/src/vs/workbench/services/host/electron-browser/desktopHostService.ts b/src/vs/workbench/services/host/electron-browser/desktopHostService.ts index 17d415d16b705dd1d587009bb4eb60726571f5c4..6fd4fa2404ea5a6107ab6fd6f78d8080bdcb691c 100644 --- a/src/vs/workbench/services/host/electron-browser/desktopHostService.ts +++ b/src/vs/workbench/services/host/electron-browser/desktopHostService.ts @@ -24,26 +24,17 @@ export class DesktopHostService extends Disposable implements IHostService { @IElectronEnvironmentService private readonly electronEnvironmentService: IElectronEnvironmentService ) { super(); - - // Resolve initial window focus state - this._hasFocus = document.hasFocus(); - electronService.isWindowFocused().then(focused => this._hasFocus = focused); - - this.registerListeners(); - } - - private registerListeners(): void { - this._register(this.onDidChangeFocus(focus => this._hasFocus = focus)); } get onDidChangeFocus(): Event { return this._onDidChangeFocus; } private _onDidChangeFocus: Event = Event.any( - Event.map(Event.filter(this.electronService.onWindowFocus, id => id === this.electronEnvironmentService.windowId), _ => true), - Event.map(Event.filter(this.electronService.onWindowBlur, id => id === this.electronEnvironmentService.windowId), _ => false) + Event.map(Event.filter(this.electronService.onWindowFocus, id => id === this.electronEnvironmentService.windowId), () => this.hasFocus), + Event.map(Event.filter(this.electronService.onWindowBlur, id => id === this.electronEnvironmentService.windowId), () => this.hasFocus) ); - private _hasFocus: boolean; - get hasFocus(): boolean { return this._hasFocus; } + get hasFocus(): boolean { + return document.hasFocus(); + } openWindow(options?: IOpenEmptyWindowOptions): Promise; openWindow(toOpen: IWindowOpenable[], options?: IOpenWindowOptions): Promise; diff --git a/src/vs/workbench/test/workbenchTestServices.ts b/src/vs/workbench/test/workbenchTestServices.ts index 6dbaa12427aa25b0dca05936b7282d4295c0f17c..7b7bc186507b8979583d7b2d7b14ed30a27e9fb5 100644 --- a/src/vs/workbench/test/workbenchTestServices.ts +++ b/src/vs/workbench/test/workbenchTestServices.ts @@ -1404,7 +1404,6 @@ export class TestElectronService implements IElectronService { async maximizeWindow(): Promise { } async unmaximizeWindow(): Promise { } async minimizeWindow(): Promise { } - async isWindowFocused(): Promise { return true; } async focusWindow(options?: { windowId?: number | undefined; } | undefined): Promise { } async showMessageBox(options: Electron.MessageBoxOptions): Promise { throw new Error('Method not implemented.'); } async showSaveDialog(options: Electron.SaveDialogOptions): Promise { throw new Error('Method not implemented.'); }