diff --git a/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts b/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts index 3da1ae98039bf077d49015411116b587b5526fdc..184916e4ee56cf1f4108eec40cf8a2fe33740c8b 100644 --- a/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts +++ b/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts @@ -218,8 +218,17 @@ export class FilesRenderer implements ITreeRenderer inputBox.focus(), 100); - inputBox.select({ start: 0, end: lastDot > 0 && !stat.isDirectory ? lastDot : value.length }); + + let isFinishableDisposeEvent = false; + setTimeout(() => { + // Check if disposed + if (!inputBox.inputElement) { + return; + } + inputBox.focus(); + inputBox.select({ start: 0, end: lastDot > 0 && !stat.isDirectory ? lastDot : value.length }); + isFinishableDisposeEvent = true; + }, 0); const done = once(async (success: boolean) => { label.element.style.display = 'none'; @@ -251,8 +260,12 @@ export class FilesRenderer implements ITreeRenderer { - blurDisposable.dispose(); - done(false); + if (isFinishableDisposeEvent) { + done(false); + } + else { + dispose(toDispose); + } }); }