Listen to all fullscreen event types

This commit is contained in:
ahocevar
2018-12-20 08:39:24 +01:00
parent 100e69e286
commit 9cfb46f7a4
+5 -27
View File
@@ -7,29 +7,7 @@ import {replaceNode} from '../dom.js';
import {listen} from '../events.js'; import {listen} from '../events.js';
import EventType from '../events/EventType.js'; import EventType from '../events/EventType.js';
const events = ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'];
/**
* @return {string} Change type.
*/
const getChangeType = (function() {
let changeType;
return function() {
if (!changeType) {
const 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;
};
})();
/** /**
* @typedef {Object} Options * @typedef {Object} Options
@@ -215,10 +193,10 @@ class FullScreen extends Control {
setMap(map) { setMap(map) {
super.setMap(map); super.setMap(map);
if (map) { if (map) {
this.listenerKeys.push(listen(document, for (let i = 0, ii = events.length; i < ii; ++i) {
getChangeType(), this.listenerKeys.push(
this.handleFullScreenChange_, this) listen(document, events[i], this.handleFullScreenChange_, this));
); }
} }
} }
} }