Move label cache listener management to the renderer

This commit is contained in:
ahocevar
2019-06-03 15:10:35 +02:00
parent 68b7831daf
commit 8c21c9196d
2 changed files with 25 additions and 38 deletions

View File

@@ -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
*/