mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
properly dispose of buffer decoration
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user