Memory leak in ol.control.FullScreen

Register and unregister listener in setMap method.
This commit is contained in:
AvatharDG
2016-03-24 09:35:10 +01:00
parent ce61fb300c
commit c9cb9b6d36

View File

@@ -68,10 +68,6 @@ ol.control.FullScreen = function(opt_options) {
ol.events.listen(button, ol.events.EventType.CLICK, ol.events.listen(button, ol.events.EventType.CLICK,
this.handleClick_, this); this.handleClick_, this);
ol.events.listen(goog.global.document,
goog.dom.fullscreen.EventType.CHANGE,
this.handleFullScreenChange_, this);
var cssClasses = this.cssClassName_ + ' ' + ol.css.CLASS_UNSELECTABLE + var cssClasses = this.cssClassName_ + ' ' + ol.css.CLASS_UNSELECTABLE +
' ' + ol.css.CLASS_CONTROL + ' ' + ' ' + ol.css.CLASS_CONTROL + ' ' +
(!goog.dom.fullscreen.isSupported() ? ol.css.CLASS_UNSUPPORTED : ''); (!goog.dom.fullscreen.isSupported() ? ol.css.CLASS_UNSUPPORTED : '');
@@ -153,3 +149,18 @@ ol.control.FullScreen.prototype.handleFullScreenChange_ = function() {
map.updateSize(); map.updateSize();
} }
}; };
/**
* @inheritDoc
* @api stable
*/
ol.control.FullScreen.prototype.setMap = function (map) {
goog.base(this, 'setMap', map);
if (map) {
this.listenerKeys.push(
ol.events.listen(goog.global.document, goog.dom.fullscreen.EventType.CHANGE,
this.handleFullScreenChange_, this);
);
}
};