From 34cc5c6bde13a530059f91c9465c1e30c486df61 Mon Sep 17 00:00:00 2001 From: GaborFarkas Date: Fri, 1 Jul 2016 18:06:11 +0200 Subject: [PATCH 1/3] Fix error from early enum of CHANGETYPE --- src/ol/control/fullscreencontrol.js | 37 +++++++++++++++-------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/ol/control/fullscreencontrol.js b/src/ol/control/fullscreencontrol.js index c86584b4f2..92d2392e49 100644 --- a/src/ol/control/fullscreencontrol.js +++ b/src/ol/control/fullscreencontrol.js @@ -89,6 +89,24 @@ ol.control.FullScreen = function(opt_options) { */ this.source_ = options.source; + /** + * @private + * @type {string} + */ + this.changeType_ = (function() { + var body = document.body; + if (body.webkitRequestFullscreen) { + return 'webkitfullscreenchange'; + } else if (body.mozRequestFullScreen) { + return 'mozfullscreenchange'; + } else if (body.msRequestFullscreen) { + return 'MSFullscreenChange'; + } else if (body.requestFullscreen) { + return 'fullscreenchange'; + } + return undefined; + })(); + }; ol.inherits(ol.control.FullScreen, ol.control.Control); @@ -163,7 +181,7 @@ ol.control.FullScreen.prototype.setMap = function(map) { ol.control.Control.prototype.setMap.call(this, map); if (map) { this.listenerKeys.push( - ol.events.listen(ol.global.document, ol.control.FullScreen.CHANGETYPE, + ol.events.listen(ol.global.document, this.changeType_, this.handleFullScreenChange_, this) ); } @@ -236,20 +254,3 @@ ol.control.FullScreen.exitFullScreen = function() { document.webkitExitFullscreen(); } }; - -/** - * @type {string} - */ -ol.control.FullScreen.CHANGETYPE = (function() { - var body = document.body; - if (body.webkitRequestFullscreen) { - return 'webkitfullscreenchange'; - } else if (body.mozRequestFullScreen) { - return 'mozfullscreenchange'; - } else if (body.msRequestFullscreen) { - return 'MSFullscreenChange'; - } else if (body.requestFullscreen) { - return 'fullscreenchange'; - } - return undefined; -})(); From 27e3124dca586da4b3219edf328f0b1d9f0e6033 Mon Sep 17 00:00:00 2001 From: GaborFarkas Date: Fri, 1 Jul 2016 18:24:41 +0200 Subject: [PATCH 2/3] Set changeType when the map exists --- src/ol/control/fullscreencontrol.js | 31 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/ol/control/fullscreencontrol.js b/src/ol/control/fullscreencontrol.js index 92d2392e49..e7ec72bddf 100644 --- a/src/ol/control/fullscreencontrol.js +++ b/src/ol/control/fullscreencontrol.js @@ -91,21 +91,9 @@ ol.control.FullScreen = function(opt_options) { /** * @private - * @type {string} + * @type {string|undefined} */ - this.changeType_ = (function() { - var body = document.body; - if (body.webkitRequestFullscreen) { - return 'webkitfullscreenchange'; - } else if (body.mozRequestFullScreen) { - return 'mozfullscreenchange'; - } else if (body.msRequestFullscreen) { - return 'MSFullscreenChange'; - } else if (body.requestFullscreen) { - return 'fullscreenchange'; - } - return undefined; - })(); + this.changeType_ = undefined; }; ol.inherits(ol.control.FullScreen, ol.control.Control); @@ -180,6 +168,21 @@ ol.control.FullScreen.prototype.handleFullScreenChange_ = function() { ol.control.FullScreen.prototype.setMap = function(map) { ol.control.Control.prototype.setMap.call(this, map); if (map) { + if (!this.changeType_) { + this.changeType_ = (function() { + var body = document.body; + if (body.webkitRequestFullscreen) { + return 'webkitfullscreenchange'; + } else if (body.mozRequestFullScreen) { + return 'mozfullscreenchange'; + } else if (body.msRequestFullscreen) { + return 'MSFullscreenChange'; + } else if (body.requestFullscreen) { + return 'fullscreenchange'; + } + return undefined; + })(); + } this.listenerKeys.push( ol.events.listen(ol.global.document, this.changeType_, this.handleFullScreenChange_, this) From 2e68be13f65eff4a3d240546a3bf2b6d02cb779d Mon Sep 17 00:00:00 2001 From: GaborFarkas Date: Sun, 3 Jul 2016 10:27:19 +0200 Subject: [PATCH 3/3] Create a dedicated function to changeType. --- src/ol/control/fullscreencontrol.js | 50 +++++++++++++++-------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/src/ol/control/fullscreencontrol.js b/src/ol/control/fullscreencontrol.js index e7ec72bddf..976de1bf64 100644 --- a/src/ol/control/fullscreencontrol.js +++ b/src/ol/control/fullscreencontrol.js @@ -89,12 +89,6 @@ ol.control.FullScreen = function(opt_options) { */ this.source_ = options.source; - /** - * @private - * @type {string|undefined} - */ - this.changeType_ = undefined; - }; ol.inherits(ol.control.FullScreen, ol.control.Control); @@ -168,24 +162,9 @@ ol.control.FullScreen.prototype.handleFullScreenChange_ = function() { ol.control.FullScreen.prototype.setMap = function(map) { ol.control.Control.prototype.setMap.call(this, map); if (map) { - if (!this.changeType_) { - this.changeType_ = (function() { - var body = document.body; - if (body.webkitRequestFullscreen) { - return 'webkitfullscreenchange'; - } else if (body.mozRequestFullScreen) { - return 'mozfullscreenchange'; - } else if (body.msRequestFullscreen) { - return 'MSFullscreenChange'; - } else if (body.requestFullscreen) { - return 'fullscreenchange'; - } - return undefined; - })(); - } - this.listenerKeys.push( - ol.events.listen(ol.global.document, this.changeType_, - this.handleFullScreenChange_, this) + this.listenerKeys.push(ol.events.listen(ol.global.document, + ol.control.FullScreen.getChangeType_(), + this.handleFullScreenChange_, this) ); } }; @@ -257,3 +236,26 @@ ol.control.FullScreen.exitFullScreen = function() { document.webkitExitFullscreen(); } }; + +/** + * @return {string} Change type. + * @private + */ +ol.control.FullScreen.getChangeType_ = (function() { + var changeType; + return function() { + if (!changeType) { + var body = document.body; + if (body.webkitRequestFullscreen) { + changeType = 'webkitfullscreenchange'; + } else if (body.mozRequestFullScreen) { + changeType = 'mozfullscreenchange'; + } else if (body.msRequestFullscreen) { + changeType = 'MSFullscreenChange'; + } else if (body.requestFullscreen) { + changeType = 'fullscreenchange'; + } + } + return changeType; + }; +})();