Skip to content

Commit e6f2819

Browse files
committed
strictNullChecks in terminalWidgetManager
Part of microsoft#60565
1 parent be2ac17 commit e6f2819

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

src/tsconfig.strictNullChecks.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
"./vs/workbench/common/extensionHostProtocol.ts",
100100
"./vs/workbench/parts/execution/common/execution.ts",
101101
"./vs/workbench/parts/logs/common/logConstants.ts",
102+
"./vs/workbench/parts/terminal/browser/terminalWidgetManager.ts",
102103
"./vs/workbench/services/activity/common/activity.ts",
103104
"./vs/workbench/services/configuration/common/jsonEditing.ts",
104105
"./vs/workbench/services/extensions/node/lazyPromise.ts",

src/vs/workbench/parts/terminal/browser/terminalWidgetManager.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle';
88
const WIDGET_HEIGHT = 29;
99

1010
export class TerminalWidgetManager implements IDisposable {
11-
private _container: HTMLElement;
12-
private _xtermViewport: HTMLElement;
11+
private _container: HTMLElement | null;
12+
private _xtermViewport: HTMLElement | null;
1313

1414
private _messageWidget: MessageWidget;
1515
private _messageListeners: IDisposable[] = [];
@@ -25,7 +25,7 @@ export class TerminalWidgetManager implements IDisposable {
2525
}
2626

2727
public dispose(): void {
28-
if (this._container) {
28+
if (this._container && this._container.parentElement) {
2929
this._container.parentElement.removeChild(this._container);
3030
this._container = null;
3131
}
@@ -35,11 +35,17 @@ export class TerminalWidgetManager implements IDisposable {
3535
private _initTerminalHeightWatcher(terminalWrapper: HTMLElement) {
3636
// Watch the xterm.js viewport for style changes and do a layout if it changes
3737
this._xtermViewport = <HTMLElement>terminalWrapper.querySelector('.xterm-viewport');
38+
if (!this._xtermViewport) {
39+
return;
40+
}
3841
const mutationObserver = new MutationObserver(() => this._refreshHeight());
3942
mutationObserver.observe(this._xtermViewport, { attributes: true, attributeFilter: ['style'] });
4043
}
4144

4245
public showMessage(left: number, top: number, text: string): void {
46+
if (!this._container) {
47+
return;
48+
}
4349
dispose(this._messageWidget);
4450
this._messageListeners = dispose(this._messageListeners);
4551
this._messageWidget = new MessageWidget(this._container, left, top, text);
@@ -53,6 +59,9 @@ export class TerminalWidgetManager implements IDisposable {
5359
}
5460

5561
private _refreshHeight(): void {
62+
if (!this._container || !this._xtermViewport) {
63+
return;
64+
}
5665
this._container.style.height = this._xtermViewport.style.height;
5766
}
5867
}

0 commit comments

Comments
 (0)