diff --git a/src/Terminal.ts b/src/Terminal.ts index de753431..8f7d27b3 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -193,7 +193,6 @@ export class Terminal extends EventEmitter implements ITerminal, IDisposable, II // Store if user went browsing history in scrollback private _userScrolling: boolean; - private _isDisposed: boolean = false; private _inputHandler: InputHandler; public soundManager: SoundManager; @@ -234,7 +233,6 @@ export class Terminal extends EventEmitter implements ITerminal, IDisposable, II } public dispose(): void { - this._isDisposed = true; super.dispose(); this._customKeyEventHandler = null; removeTerminalFromCache(this); diff --git a/src/common/Lifecycle.ts b/src/common/Lifecycle.ts index 46828521..209a3e2a 100644 --- a/src/common/Lifecycle.ts +++ b/src/common/Lifecycle.ts @@ -11,6 +11,7 @@ import { IDisposable } from 'xterm'; */ export abstract class Disposable implements IDisposable { protected _disposables: IDisposable[] = []; + protected _isDisposed: boolean = false; constructor() { } @@ -19,6 +20,7 @@ export abstract class Disposable implements IDisposable { * Disposes the object, triggering the `dispose` method on all registered IDisposables. */ public dispose(): void { + this._isDisposed = true; this._disposables.forEach(d => d.dispose()); this._disposables.length = 0; }