From c9cb9b6d36352537ba59520e2e99e3ad63dd407d Mon Sep 17 00:00:00 2001 From: AvatharDG Date: Thu, 24 Mar 2016 09:35:10 +0100 Subject: [PATCH 1/3] Memory leak in ol.control.FullScreen Register and unregister listener in setMap method. --- src/ol/control/fullscreencontrol.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/ol/control/fullscreencontrol.js b/src/ol/control/fullscreencontrol.js index 148963850b..d714e29adf 100644 --- a/src/ol/control/fullscreencontrol.js +++ b/src/ol/control/fullscreencontrol.js @@ -68,10 +68,6 @@ ol.control.FullScreen = function(opt_options) { ol.events.listen(button, ol.events.EventType.CLICK, 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 + ' ' + ol.css.CLASS_CONTROL + ' ' + (!goog.dom.fullscreen.isSupported() ? ol.css.CLASS_UNSUPPORTED : ''); @@ -153,3 +149,18 @@ ol.control.FullScreen.prototype.handleFullScreenChange_ = function() { 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); + ); + } +}; From 290f8b5c7dfb24ac2915ed39ccdb4d6bd7777ec6 Mon Sep 17 00:00:00 2001 From: AvatharDG Date: Thu, 24 Mar 2016 09:39:31 +0100 Subject: [PATCH 2/3] Update fullscreencontrol.js --- src/ol/control/fullscreencontrol.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/control/fullscreencontrol.js b/src/ol/control/fullscreencontrol.js index d714e29adf..b72642ba40 100644 --- a/src/ol/control/fullscreencontrol.js +++ b/src/ol/control/fullscreencontrol.js @@ -160,7 +160,7 @@ ol.control.FullScreen.prototype.setMap = function (map) { if (map) { this.listenerKeys.push( ol.events.listen(goog.global.document, goog.dom.fullscreen.EventType.CHANGE, - this.handleFullScreenChange_, this); + this.handleFullScreenChange_, this) ); } }; From e752a8cea3d2dd2148845604a0d1a284a78719a0 Mon Sep 17 00:00:00 2001 From: AvatharDG Date: Thu, 24 Mar 2016 09:41:01 +0100 Subject: [PATCH 3/3] Update fullscreencontrol.js --- src/ol/control/fullscreencontrol.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/control/fullscreencontrol.js b/src/ol/control/fullscreencontrol.js index b72642ba40..0d13862e1c 100644 --- a/src/ol/control/fullscreencontrol.js +++ b/src/ol/control/fullscreencontrol.js @@ -155,7 +155,7 @@ ol.control.FullScreen.prototype.handleFullScreenChange_ = function() { * @inheritDoc * @api stable */ -ol.control.FullScreen.prototype.setMap = function (map) { +ol.control.FullScreen.prototype.setMap = function(map) { goog.base(this, 'setMap', map); if (map) { this.listenerKeys.push(