diff --git a/src/vs/platform/windows/common/windows.ts b/src/vs/platform/windows/common/windows.ts index d835722e434..e9c4176128e 100644 --- a/src/vs/platform/windows/common/windows.ts +++ b/src/vs/platform/windows/common/windows.ts @@ -42,7 +42,6 @@ export interface IWindowsService { clearRecentlyOpened(): Promise; getRecentlyOpened(windowId: number): Promise; isFocused(windowId: number): Promise; - getActiveWindowId(): Promise; } export const IWindowService = createDecorator('windowService'); diff --git a/src/vs/platform/windows/common/windowsIpc.ts b/src/vs/platform/windows/common/windowsIpc.ts index acd99acaaa4..355f88fbf79 100644 --- a/src/vs/platform/windows/common/windowsIpc.ts +++ b/src/vs/platform/windows/common/windowsIpc.ts @@ -58,7 +58,6 @@ export class WindowsChannel implements IServerChannel { case 'getRecentlyOpened': return this.service.getRecentlyOpened(arg); case 'isFocused': return this.service.isFocused(arg); case 'openExtensionDevelopmentHostWindow': return (this.service as any).openExtensionDevelopmentHostWindow(arg[0], arg[1]); // TODO@Isidor move - case 'getActiveWindowId': return this.service.getActiveWindowId(); } throw new Error(`Call not found: ${command}`); diff --git a/src/vs/platform/windows/electron-browser/windowsService.ts b/src/vs/platform/windows/electron-browser/windowsService.ts index 48b2e2aa4dc..7ba22274581 100644 --- a/src/vs/platform/windows/electron-browser/windowsService.ts +++ b/src/vs/platform/windows/electron-browser/windowsService.ts @@ -57,8 +57,4 @@ export class WindowsService implements IWindowsService { openExtensionDevelopmentHostWindow(args: ParsedArgs, env: IProcessEnvironment): Promise { return this.channel.call('openExtensionDevelopmentHostWindow', [args, env]); } - - getActiveWindowId(): Promise { - return this.channel.call('getActiveWindowId'); - } } diff --git a/src/vs/platform/windows/electron-main/legacyWindowsMainService.ts b/src/vs/platform/windows/electron-main/legacyWindowsMainService.ts index 01adda9089c..7f8c9ace3c2 100644 --- a/src/vs/platform/windows/electron-main/legacyWindowsMainService.ts +++ b/src/vs/platform/windows/electron-main/legacyWindowsMainService.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { Disposable, DisposableStore } from 'vs/base/common/lifecycle'; +import { Disposable } from 'vs/base/common/lifecycle'; import { assign } from 'vs/base/common/objects'; import { URI } from 'vs/base/common/uri'; import { IWindowsService, OpenContext } from 'vs/platform/windows/common/windows'; @@ -23,10 +23,6 @@ export class LegacyWindowsMainService extends Disposable implements IWindowsServ _serviceBrand: undefined; - private readonly disposables = this._register(new DisposableStore()); - - private _activeWindowId: number | undefined; - readonly onWindowOpen: Event = Event.filter(Event.fromNodeEventEmitter(app, 'browser-window-created', (_, w: BrowserWindow) => w.id), id => !!this.windowsMainService.getWindowById(id)); readonly onWindowBlur: Event = Event.filter(Event.fromNodeEventEmitter(app, 'browser-window-blur', (_, w: BrowserWindow) => w.id), id => !!this.windowsMainService.getWindowById(id)); readonly onWindowMaximize: Event = Event.filter(Event.fromNodeEventEmitter(app, 'browser-window-maximize', (_, w: BrowserWindow) => w.id), id => !!this.windowsMainService.getWindowById(id)); @@ -48,10 +44,6 @@ export class LegacyWindowsMainService extends Disposable implements IWindowsServ super(); urlService.registerHandler(this); - - // remember last active window id - Event.latch(Event.any(this.onWindowOpen, this.onWindowFocus)) - (id => this._activeWindowId = id, null, this.disposables); } async addRecentlyOpened(recents: IRecent[]): Promise { @@ -96,10 +88,6 @@ export class LegacyWindowsMainService extends Disposable implements IWindowsServ } } - async getActiveWindowId(): Promise { - return this._activeWindowId; - } - async handleURL(uri: URI): Promise { // Catch file URLs diff --git a/src/vs/platform/windows/node/windows.ts b/src/vs/platform/windows/node/windows.ts index 98bd1f8771e..b5e3f3f9c32 100644 --- a/src/vs/platform/windows/node/windows.ts +++ b/src/vs/platform/windows/node/windows.ts @@ -14,14 +14,18 @@ export class ActiveWindowManager extends Disposable { private firstActiveWindowIdPromise: CancelablePromise | undefined; private activeWindowId: number | undefined; + private _activeWindowId: number | undefined; constructor(@IWindowsService windowsService: IWindowsService) { super(); + // remember last active window id + Event.latch(Event.any(windowsService.onWindowOpen, windowsService.onWindowFocus))(id => this._activeWindowId = id, null, this.disposables); + const onActiveWindowChange = Event.latch(Event.any(windowsService.onWindowOpen, windowsService.onWindowFocus)); onActiveWindowChange(this.setActiveWindow, this, this.disposables); - this.firstActiveWindowIdPromise = createCancelablePromise(_ => windowsService.getActiveWindowId()); + this.firstActiveWindowIdPromise = createCancelablePromise(_ => this.getActiveWindowId()); this.firstActiveWindowIdPromise .then(id => this.activeWindowId = typeof this.activeWindowId === 'number' ? this.activeWindowId : id) .finally(this.firstActiveWindowIdPromise = undefined); @@ -42,4 +46,7 @@ export class ActiveWindowManager extends Disposable { return `window:${id}`; } + private async getActiveWindowId(): Promise { + return this._activeWindowId; + } } diff --git a/src/vs/workbench/browser/web.simpleservices.ts b/src/vs/workbench/browser/web.simpleservices.ts index 58120dd86cf..259c3d7e0da 100644 --- a/src/vs/workbench/browser/web.simpleservices.ts +++ b/src/vs/workbench/browser/web.simpleservices.ts @@ -165,10 +165,6 @@ export class SimpleWindowsService implements IWindowsService { files: [] }); } - - getActiveWindowId(): Promise { - return Promise.resolve(0); - } } registerSingleton(IWindowsService, SimpleWindowsService); diff --git a/src/vs/workbench/test/workbenchTestServices.ts b/src/vs/workbench/test/workbenchTestServices.ts index 024a5701627..2bb39cf3149 100644 --- a/src/vs/workbench/test/workbenchTestServices.ts +++ b/src/vs/workbench/test/workbenchTestServices.ts @@ -1280,10 +1280,6 @@ export class TestWindowsService implements IWindowsService { files: [] }); } - - getActiveWindowId(): Promise { - return Promise.resolve(undefined); - } } export class TestTextResourceConfigurationService implements ITextResourceConfigurationService {