Prevent more than one concurrent trackDimensionChanges from running
This commit is contained in:
parent
ff0de6f2e7
commit
39f39f23a7
@ -103,6 +103,8 @@ class PlayerData {
|
||||
|
||||
private ui: UI;
|
||||
|
||||
private _isTrackDimensionChangesActive: boolean = false;
|
||||
|
||||
elementStack: ElementStack = [] as ElementStack;
|
||||
//#endregion
|
||||
|
||||
@ -371,6 +373,15 @@ class PlayerData {
|
||||
*
|
||||
*/
|
||||
trackDimensionChanges() {
|
||||
if (this._isTrackDimensionChangesActive) {
|
||||
// this shouldn't really get called, _ever_ ... but sometimes it happens
|
||||
console.warn('[PlayerData::trackDimensionChanges] trackDimensionChanges is already active!');
|
||||
return;
|
||||
}
|
||||
|
||||
this._isTrackDimensionChangesActive = true;
|
||||
|
||||
try {
|
||||
// get player dimensions _once_
|
||||
let currentPlayerDimensions;
|
||||
this.isFullscreen = !!document.fullscreenElement;
|
||||
@ -404,6 +415,7 @@ class PlayerData {
|
||||
this.eventBus.send('restore-ar', null);
|
||||
this.eventBus.send('delayed-restore-ar', {delay: 500});
|
||||
this.dimensions = currentPlayerDimensions;
|
||||
this._isTrackDimensionChangesActive = false;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -414,6 +426,11 @@ class PlayerData {
|
||||
|
||||
// Save current dimensions to avoid triggering this function pointlessly
|
||||
this.dimensions = currentPlayerDimensions;
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
|
||||
this._isTrackDimensionChangesActive = false;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user