From 5b44deaa30e665a3d99a4259a7429792ea1661d8 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Fri, 18 Feb 2022 15:38:07 -0600 Subject: [PATCH 1/3] get rid of markers once they've been disposed via clear --- src/common/buffer/Buffer.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/common/buffer/Buffer.ts b/src/common/buffer/Buffer.ts index 17831f39..1ba76ba1 100644 --- a/src/common/buffer/Buffer.ts +++ b/src/common/buffer/Buffer.ts @@ -591,10 +591,12 @@ export class Buffer implements IBuffer { for (const marker of this.markers.filter(m => m.line === y)) { marker.dispose(); } + this.markers = this.markers.filter(m => m.line !== y); } else { for (const marker of this.markers) { marker.dispose(); } + this.markers = []; } this._isClearing = false; } From a4fee6d4b5c8dd4f740cdf0b5e221377020c1f34 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Fri, 18 Feb 2022 16:11:00 -0600 Subject: [PATCH 2/3] get rid of the bane of my existence --- src/common/InputHandler.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/common/InputHandler.ts b/src/common/InputHandler.ts index 0df992c8..6198aa37 100644 --- a/src/common/InputHandler.ts +++ b/src/common/InputHandler.ts @@ -1218,7 +1218,6 @@ export class InputHandler extends Disposable implements IInputHandler { this._activeBuffer.getNullCell(this._eraseAttrData()), this._eraseAttrData() ); - this._bufferService.buffer.clearMarkers(y); if (clearWrap) { line.isWrapped = false; } From f839a0da8baa212f6a25c22c4ff51df7c042c0ac Mon Sep 17 00:00:00 2001 From: meganrogge Date: Fri, 18 Feb 2022 17:50:12 -0600 Subject: [PATCH 3/3] use splice instead of filter --- src/common/buffer/Buffer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/buffer/Buffer.ts b/src/common/buffer/Buffer.ts index 1ba76ba1..266c16aa 100644 --- a/src/common/buffer/Buffer.ts +++ b/src/common/buffer/Buffer.ts @@ -590,8 +590,8 @@ export class Buffer implements IBuffer { if (y) { for (const marker of this.markers.filter(m => m.line === y)) { marker.dispose(); + this.markers.splice(this.markers.indexOf(marker), 1); } - this.markers = this.markers.filter(m => m.line !== y); } else { for (const marker of this.markers) { marker.dispose();