Listen to all fullscreen event types
This commit is contained in:
@@ -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));
|
||||||
);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user