diff --git a/src/renderer/SelectionRenderLayer.ts b/src/renderer/SelectionRenderLayer.ts index 8fbcb75b..97ae67df 100644 --- a/src/renderer/SelectionRenderLayer.ts +++ b/src/renderer/SelectionRenderLayer.ts @@ -42,9 +42,7 @@ export class SelectionRenderLayer extends BaseRenderLayer { public onSelectionChanged(terminal: ITerminal, start: [number, number], end: [number, number], columnSelectMode: boolean): void { // Selection has not changed - if (this._areCoordinatesEqual(start, this._state.start) && - this._areCoordinatesEqual(end, this._state.end) && - columnSelectMode === this._state.columnSelectMode) { + if (!this._didStateChange(start, end, columnSelectMode)) { return; } @@ -99,6 +97,12 @@ export class SelectionRenderLayer extends BaseRenderLayer { this._state.columnSelectMode = columnSelectMode; } + private _didStateChange(start: [number, number], end: [number, number], columnSelectMode: boolean): boolean { + return !this._areCoordinatesEqual(start, this._state.start) || + !this._areCoordinatesEqual(end, this._state.end) || + columnSelectMode !== this._state.columnSelectMode; + } + private _areCoordinatesEqual(coord1: [number, number], coord2: [number, number]): boolean { if (!coord1 || !coord2) { return false;