diff --git a/src/InputHandler.ts b/src/InputHandler.ts index 70491027..5c031b5a 100644 --- a/src/InputHandler.ts +++ b/src/InputHandler.ts @@ -1295,7 +1295,9 @@ export class InputHandler extends Disposable implements IInputHandler { this._terminal.vt200Mouse = params[0] === 1000; this._terminal.normalMouse = params[0] > 1000; this._terminal.mouseEvents = true; - this._terminal.element.classList.add('enable-mouse-events'); + if (this._terminal.element) { + this._terminal.element.classList.add('enable-mouse-events'); + } this._terminal.selectionManager.disable(); this._terminal.log('Binding to mouse events.'); break; @@ -1483,7 +1485,9 @@ export class InputHandler extends Disposable implements IInputHandler { this._terminal.vt200Mouse = false; this._terminal.normalMouse = false; this._terminal.mouseEvents = false; - this._terminal.element.classList.remove('enable-mouse-events'); + if (this._terminal.element) { + this._terminal.element.classList.remove('enable-mouse-events'); + } this._terminal.selectionManager.enable(); break; case 1004: // send focusin/focusout events diff --git a/src/Terminal.ts b/src/Terminal.ts index e92ef08b..c8238a9f 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -733,6 +733,8 @@ export class Terminal extends EventEmitter implements ITerminal, IDisposable, II this.register(addDisposableDomListener(this._viewportElement, 'scroll', () => this.selectionManager.refresh())); this.mouseHelper = new MouseHelper(this.renderer); + // apply mouse event classes set by escape codes before terminal was attached + this.element.classList.toggle('enable-mouse-events', this.mouseEvents); if (this.options.screenReaderMode) { // Note that this must be done *after* the renderer is created in order to