diff --git a/src/tsconfig.strictNullChecks.json b/src/tsconfig.strictNullChecks.json index 162686d769d..e8bfbf58937 100644 --- a/src/tsconfig.strictNullChecks.json +++ b/src/tsconfig.strictNullChecks.json @@ -99,6 +99,7 @@ "./vs/workbench/common/extensionHostProtocol.ts", "./vs/workbench/parts/execution/common/execution.ts", "./vs/workbench/parts/logs/common/logConstants.ts", + "./vs/workbench/parts/terminal/browser/terminalWidgetManager.ts", "./vs/workbench/services/activity/common/activity.ts", "./vs/workbench/services/configuration/common/jsonEditing.ts", "./vs/workbench/services/extensions/node/lazyPromise.ts", diff --git a/src/vs/workbench/parts/terminal/browser/terminalWidgetManager.ts b/src/vs/workbench/parts/terminal/browser/terminalWidgetManager.ts index f40dd1407d7..9fb22f4deb3 100644 --- a/src/vs/workbench/parts/terminal/browser/terminalWidgetManager.ts +++ b/src/vs/workbench/parts/terminal/browser/terminalWidgetManager.ts @@ -8,8 +8,8 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; const WIDGET_HEIGHT = 29; export class TerminalWidgetManager implements IDisposable { - private _container: HTMLElement; - private _xtermViewport: HTMLElement; + private _container: HTMLElement | null; + private _xtermViewport: HTMLElement | null; private _messageWidget: MessageWidget; private _messageListeners: IDisposable[] = []; @@ -25,7 +25,7 @@ export class TerminalWidgetManager implements IDisposable { } public dispose(): void { - if (this._container) { + if (this._container && this._container.parentElement) { this._container.parentElement.removeChild(this._container); this._container = null; } @@ -35,11 +35,17 @@ export class TerminalWidgetManager implements IDisposable { private _initTerminalHeightWatcher(terminalWrapper: HTMLElement) { // Watch the xterm.js viewport for style changes and do a layout if it changes this._xtermViewport = terminalWrapper.querySelector('.xterm-viewport'); + if (!this._xtermViewport) { + return; + } const mutationObserver = new MutationObserver(() => this._refreshHeight()); mutationObserver.observe(this._xtermViewport, { attributes: true, attributeFilter: ['style'] }); } public showMessage(left: number, top: number, text: string): void { + if (!this._container) { + return; + } dispose(this._messageWidget); this._messageListeners = dispose(this._messageListeners); this._messageWidget = new MessageWidget(this._container, left, top, text); @@ -53,6 +59,9 @@ export class TerminalWidgetManager implements IDisposable { } private _refreshHeight(): void { + if (!this._container || !this._xtermViewport) { + return; + } this._container.style.height = this._xtermViewport.style.height; } }