diff --git a/src/vs/workbench/electron-browser/workbench.ts b/src/vs/workbench/electron-browser/workbench.ts index dae70324dbfa27bef1aeac05b865b6ed5095bf0a..bfed9637ad6b18b709ce6a59b06d149db71788e7 100644 --- a/src/vs/workbench/electron-browser/workbench.ts +++ b/src/vs/workbench/electron-browser/workbench.ts @@ -1118,7 +1118,7 @@ export class Workbench extends Disposable implements IPartService { get onEditorLayout(): Event { return this.editorPart.onDidLayout; } isCreated(): boolean { - return this.workbenchCreated && this.workbenchStarted; + return !!(this.workbenchCreated && this.workbenchStarted); } hasFocus(part: Parts): boolean { diff --git a/src/vs/workbench/services/history/electron-browser/history.ts b/src/vs/workbench/services/history/electron-browser/history.ts index 0cb907bc631f8085f829c6ffa278a081a7e76d3d..bdf9ae0eee374e668b09b79b23befb80d981615e 100644 --- a/src/vs/workbench/services/history/electron-browser/history.ts +++ b/src/vs/workbench/services/history/electron-browser/history.ts @@ -32,6 +32,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { ResourceGlobMatcher } from 'vs/workbench/electron-browser/resources'; import { Schemas } from 'vs/base/common/network'; import { EditorServiceImpl } from 'vs/workbench/browser/parts/editor/editor'; +import { IPartService } from 'vs/workbench/services/part/common/partService'; /** * Stores the selection & view state of an editor and allows to compare it to other selection states. @@ -132,6 +133,7 @@ export class HistoryService extends Disposable implements IHistoryService { @IFileService private fileService: IFileService, @IWindowsService private windowService: IWindowsService, @IInstantiationService private instantiationService: IInstantiationService, + @IPartService private partService: IPartService ) { super(); @@ -658,7 +660,12 @@ export class HistoryService extends Disposable implements IHistoryService { if (arg2 instanceof EditorInput) { const inputResource = arg2.getResource(); - return inputResource && this.fileService.canHandleResource(inputResource) && inputResource.toString() === resource.toString(); + let isSupportedFile = true; + if (this.partService.isCreated() && !this.fileService.canHandleResource(inputResource)) { + isSupportedFile = false; // make sure to only check this when workbench has started (for https://github.com/Microsoft/vscode/issues/48275) + } + + return inputResource && isSupportedFile && inputResource.toString() === resource.toString(); } const resourceInput = arg2 as IResourceInput;