mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2025-10-30 08:11:25 +00:00
54 lines
1.6 KiB
Haxe
54 lines
1.6 KiB
Haxe
package src;
|
|
|
|
import src.Util;
|
|
|
|
class JSPlatform {
|
|
#if js
|
|
public static function initFullscreenEnforcer() {
|
|
var dislikesFullscreen = false;
|
|
var fullscreenEnforcer = js.Browser.document.querySelector("#fullscreen-enforcer");
|
|
|
|
fullscreenEnforcer.addEventListener('click', () -> {
|
|
js.Browser.document.documentElement.requestFullscreen();
|
|
});
|
|
|
|
var enterFullscreenButton = js.Browser.document.querySelector("#enter-fullscreen");
|
|
enterFullscreenButton.addEventListener('click', () -> {
|
|
js.Browser.document.documentElement.requestFullscreen();
|
|
dislikesFullscreen = false;
|
|
});
|
|
|
|
var fullscreenButtonVisibility = true;
|
|
|
|
var setEnterFullscreenButtonVisibility = (state:Bool) -> {
|
|
fullscreenButtonVisibility = state;
|
|
|
|
if (state && Util.isTouchDevice() && !Util.isSafari() && !Util.isInFullscreen()) {
|
|
enterFullscreenButton.classList.remove('hidden');
|
|
} else {
|
|
enterFullscreenButton.classList.add('hidden');
|
|
}
|
|
}
|
|
|
|
var lastImmunityTime = Math.NEGATIVE_INFINITY;
|
|
|
|
if (!Util.isIOS()) {
|
|
js.Browser.window.setInterval(() -> {
|
|
if (js.Browser.document.activeElement != null) {
|
|
if (Util.isTouchDevice() && !Util.isSafari()) {
|
|
if (Util.isInFullscreen()) {
|
|
// They're in fullscreen, hide the overlay
|
|
fullscreenEnforcer.classList.add('hidden');
|
|
} else if (!dislikesFullscreen && js.Browser.window.performance.now() - lastImmunityTime > 666) {
|
|
// They're not in fullscreen, show the overlay
|
|
fullscreenEnforcer.classList.remove('hidden');
|
|
}
|
|
}
|
|
|
|
setEnterFullscreenButtonVisibility(fullscreenButtonVisibility);
|
|
}
|
|
}, 250);
|
|
}
|
|
}
|
|
#end
|
|
}
|