Skip to content

Commit

Permalink
Merge pull request #1154 from simonseyock/fix-synchronize-listeners
Browse files Browse the repository at this point in the history
fix: remove listeners if overlay is destroyed
  • Loading branch information
gberaudo authored Jan 26, 2024
2 parents bff7a2b + 73d4571 commit 6e74b09
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions src/olcs/OverlaySynchronizer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@ import SynchronizedOverlay from './SynchronizedOverlay';
import {getUid} from './util';
import type {Scene} from 'cesium';
import type {CollectionEvent} from 'ol/Collection.js';
import {unByKey as olObservableUnByKey} from 'ol/Observable.js';
import type {EventsKey} from 'ol/events';

export default class OverlaySynchronizer {
private overlayCollection_: Collection<Overlay>;
private overlayContainerStopEvent_: HTMLDivElement;
private overlayContainer_: HTMLDivElement;
private overlayMap_: Map<number, SynchronizedOverlay> = new Map();
private overlayEvents = ['click', 'dblclick', 'mousedown', 'touchstart', 'pointerdown', 'mousewheel', 'wheel'];
private listenerKeys_: EventsKey[];

/**
* @param map
Expand Down Expand Up @@ -59,8 +62,12 @@ export default class OverlaySynchronizer {
synchronize() {
this.destroyAll();
this.overlayCollection_.forEach((overlay) => { this.addOverlay(overlay); });
this.overlayCollection_.on('add', (evt: CollectionEvent<Overlay>) => this.addOverlay(evt.element));
this.overlayCollection_.on('remove', (evt: CollectionEvent<Overlay>) => this.removeOverlay(evt.element));
this.listenerKeys_.push(
this.overlayCollection_.on('add', (evt: CollectionEvent<Overlay>) => this.addOverlay(evt.element))
);
this.listenerKeys_.push(
this.overlayCollection_.on('remove', (evt: CollectionEvent<Overlay>) => this.removeOverlay(evt.element))
);
}


Expand Down Expand Up @@ -102,5 +109,7 @@ export default class OverlaySynchronizer {
overlay.destroy();
});
this.overlayMap_.clear();
olObservableUnByKey(this.listenerKeys_);
this.listenerKeys_.length = 0;
}
}

0 comments on commit 6e74b09

Please sign in to comment.