properly dispose of buffer decoration

This commit is contained in:
meganrogge
2022-03-15 12:16:33 -04:00
parent 520d5dd9eb
commit f98b4ce1ba
3 changed files with 8 additions and 2 deletions
@@ -63,6 +63,7 @@ export class BufferDecorationRenderer extends Disposable {
let element = this._decorationElements.get(decoration);
if (!element) {
element = this._createElement(decoration);
decoration.onDispose(() => this._removeDecoration(decoration));
this._decorationElements.set(decoration, element);
this._container.appendChild(element);
}
+6 -1
View File
@@ -65,6 +65,11 @@ class Decoration extends Disposable implements IInternalDecoration {
) {
super();
this.marker = options.marker;
// TODO: Make sure dispose doesn't need to do anything else?
this.marker.onDispose(() => this.dispose());
}
public override dispose(): void {
this.element?.remove();
this._onDispose.fire();
super.dispose();
}
}
+1 -1
View File
@@ -574,7 +574,7 @@ describe('API Integration Tests', function(): void {
await page.evaluate(`window.term.scrollLines(10)`);
await page.evaluate(`window.term.addMarker(3)`);
await page.evaluate(`window.term.addMarker(4)`);
await page.evaluate(`
await page.evaluate(`
for (let i = 0; i < window.term.markers.length; ++i) {
const marker = window.term.markers[i];
marker.onDispose(() => window.disposeStack.push(marker));