From 9a03ca84176f89ef40c19131280cae3ad7b25617 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 17 Feb 2020 10:48:29 +0100 Subject: [PATCH] Dispatch enterfullscreen and leavefullscreen from the FullScreen control --- src/ol/control/FullScreen.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/ol/control/FullScreen.js b/src/ol/control/FullScreen.js index e8419a87a5..d3741fb8e6 100644 --- a/src/ol/control/FullScreen.js +++ b/src/ol/control/FullScreen.js @@ -9,6 +9,29 @@ import EventType from '../events/EventType.js'; const events = ['fullscreenchange', 'webkitfullscreenchange', 'MSFullscreenChange']; + +/** + * @enum {string} + */ +const FullScreenEventType = { + + /** + * Triggered after the map entered fullscreen. + * @event FullScreenEventType#enterfullscreen + * @api + */ + ENTERFULLSCREEN: 'enterfullscreen', + + /** + * Triggered after the map leave fullscreen. + * @event FullScreenEventType#leavefullscreen + * @api + */ + LEAVEFULLSCREEN: 'leavefullscreen' + +}; + + /** * @typedef {Object} Options * @property {string} [className='ol-full-screen'] CSS class name. @@ -38,6 +61,8 @@ const events = ['fullscreenchange', 'webkitfullscreenchange', 'MSFullscreenChang * The [Fullscreen API](http://www.w3.org/TR/fullscreen/) is used to * toggle the map in full screen mode. * + * @fires FullScreenEventType#enterfullscreen + * @fires FullScreenEventType#leavefullscreen * @api */ class FullScreen extends Control { @@ -162,9 +187,11 @@ class FullScreen extends Control { if (isFullScreen()) { this.setClassName_(this.button_, true); replaceNode(this.labelActiveNode_, this.labelNode_); + this.dispatchEvent(FullScreenEventType.ENTERFULLSCREEN); } else { this.setClassName_(this.button_, false); replaceNode(this.labelNode_, this.labelActiveNode_); + this.dispatchEvent(FullScreenEventType.LEAVEFULLSCREEN); } if (map) { map.updateSize();