Merge pull request #7495 from ahocevar/remove-layer-renderers-with-viewport

Remove layer renderers when viewport is removed
This commit is contained in:
Andreas Hocevar
2017-11-23 08:58:18 +01:00
committed by GitHub
2 changed files with 5 additions and 5 deletions

View File

@@ -428,7 +428,6 @@ ol.PluggableMap.prototype.addOverlayInternal_ = function(overlay) {
*/
ol.PluggableMap.prototype.disposeInternal = function() {
this.mapBrowserEventHandler_.dispose();
this.renderer_.dispose();
ol.events.unlisten(this.viewport_, ol.events.EventType.WHEEL,
this.handleBrowserEvent, this);
ol.events.unlisten(this.viewport_, ol.events.EventType.MOUSEWHEEL,
@@ -941,6 +940,7 @@ ol.PluggableMap.prototype.handleTargetChanged_ = function() {
}
if (!targetElement) {
this.renderer_.removeLayerRenderers();
ol.dom.removeNode(this.viewport_);
if (this.handleResize_ !== undefined) {
window.removeEventListener(ol.events.EventType.RESIZE,

View File

@@ -68,11 +68,11 @@ ol.renderer.Map.prototype.calculateMatrices2D = function(frameState) {
/**
* @inheritDoc
* Removes all layer renderers.
*/
ol.renderer.Map.prototype.disposeInternal = function() {
for (var id in this.layerRenderers_) {
this.layerRenderers_[id].dispose();
ol.renderer.Map.prototype.removeLayerRenderers = function() {
for (var key in this.layerRenderers_) {
this.removeLayerRendererByKey_(key).dispose();
}
};