Move label cache listener management to the renderer
This commit is contained in:
@@ -9,6 +9,8 @@ import MapRenderer from './Map.js';
|
||||
import SourceState from '../source/State.js';
|
||||
import {replaceChildren} from '../dom.js';
|
||||
import {labelCache} from '../render/canvas.js';
|
||||
import EventType from '../events/EventType.js';
|
||||
import {listen, unlistenByKey} from '../events.js';
|
||||
|
||||
|
||||
/**
|
||||
@@ -23,7 +25,11 @@ class CompositeMapRenderer extends MapRenderer {
|
||||
*/
|
||||
constructor(map) {
|
||||
super(map);
|
||||
map.attachLabelCache(labelCache);
|
||||
|
||||
/**
|
||||
* @type {import("./events.js").EventsKey}
|
||||
*/
|
||||
this.labelCacheKey_ = listen(labelCache, EventType.CLEAR, map.redrawText.bind(map));
|
||||
|
||||
/**
|
||||
* @private
|
||||
@@ -66,6 +72,11 @@ class CompositeMapRenderer extends MapRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
disposeInternal() {
|
||||
unlistenByKey(this.labelCacheKey_);
|
||||
super.disposeInternal();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user