From 50abb43e9c0c4704898c8f404a954f54b82accb7 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 23 Oct 2018 15:45:52 -0700 Subject: [PATCH 1/3] Remove request term info handler We're not supporting it anyway, no point having it. --- src/InputHandler.ts | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/src/InputHandler.ts b/src/InputHandler.ts index eb1ca105..8846b4be 100644 --- a/src/InputHandler.ts +++ b/src/InputHandler.ts @@ -25,26 +25,6 @@ const GLEVEL: {[key: string]: number} = {'(': 0, ')': 1, '*': 2, '+': 3, '-': 1, * DCS subparser implementations */ - /** - * DCS + q Pt ST (xterm) - * Request Terminfo String - * not supported - */ -class RequestTerminfo implements IDcsHandler { - private _data: string; - constructor(private _terminal: any) { } - hook(collect: string, params: number[], flag: number): void { - this._data = ''; - } - put(data: string, start: number, end: number): void { - this._data += data.substring(start, end); - } - unhook(): void { - // invalid: DCS 0 + r Pt ST - this._terminal.handler(`${C0.ESC}P0+r${this._data}${C0.ESC}\\`); - } -} - /** * DCS $ q Pt ST * DECRQSS (https://vt100.net/docs/vt510-rm/DECRQSS.html) @@ -87,7 +67,7 @@ class DECRQSS implements IDcsHandler { default: // invalid: DCS 0 $ r Pt ST (xterm) this._terminal.error('Unknown DCS $q %s', this._data); - this._terminal.handler(`${C0.ESC}P0$r${this._data}${C0.ESC}\\`); + this._terminal.handler(`${C0.ESC}P0$r${C0.ESC}\\`); } } } @@ -288,7 +268,6 @@ export class InputHandler extends Disposable implements IInputHandler { * DCS handler */ this._parser.setDcsHandler('$q', new DECRQSS(this._terminal)); - this._parser.setDcsHandler('+q', new RequestTerminfo(this._terminal)); } public dispose(): void { From 8bdb606fd1f16c95116d251ab6bbb0808870a1d2 Mon Sep 17 00:00:00 2001 From: Sebastian Pfitzner Date: Mon, 21 Jan 2019 11:09:00 +0100 Subject: [PATCH 2/3] fix mouse event listener change before term attached --- src/InputHandler.ts | 8 ++++++-- src/Terminal.ts | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/InputHandler.ts b/src/InputHandler.ts index 8846b4be..1b3907fd 100644 --- a/src/InputHandler.ts +++ b/src/InputHandler.ts @@ -1291,7 +1291,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; @@ -1479,7 +1481,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 4c0cd0f8..cf1a3ba5 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -733,6 +733,12 @@ 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 + if (this.mouseEvents) { + this.element.classList.add('enable-mouse-events'); + } else { + this.element.classList.remove('enable-mouse-events'); + } if (this.options.screenReaderMode) { // Note that this must be done *after* the renderer is created in order to From e1363e9fe7746c4e11d7555df6428b04c5131d4e Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Thu, 24 Jan 2019 11:32:09 -0800 Subject: [PATCH 3/3] Replace if/add/remove with a toggle --- src/Terminal.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Terminal.ts b/src/Terminal.ts index cf1a3ba5..b7d5bf7f 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -734,11 +734,7 @@ export class Terminal extends EventEmitter implements ITerminal, IDisposable, II this.mouseHelper = new MouseHelper(this.renderer); // apply mouse event classes set by escape codes before terminal was attached - if (this.mouseEvents) { - this.element.classList.add('enable-mouse-events'); - } else { - this.element.classList.remove('enable-mouse-events'); - } + 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