aboutsummaryrefslogtreecommitdiffstats
path: root/src/client/Utils.hx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/Utils.hx')
-rw-r--r--src/client/Utils.hx36
1 files changed, 24 insertions, 12 deletions
diff --git a/src/client/Utils.hx b/src/client/Utils.hx
index 54025aa..057cb23 100644
--- a/src/client/Utils.hx
+++ b/src/client/Utils.hx
@@ -1,5 +1,6 @@
package client;
+import haxe.Timer;
import haxe.io.Mime;
import js.Browser.document;
import js.Browser.navigator;
@@ -74,25 +75,36 @@ class Utils {
}
public static function hasFullscreen():Bool {
- final doc:Dynamic = document;
- return (document.fullscreenElement != null || doc.mozFullScreenElement != null
- || doc.webkitFullscreenElement != null);
+ return document.fullscreenElement != null;
}
public static function requestFullscreen(el:Element):Bool {
- final el2:Dynamic = el;
if (el.requestFullscreen != null) {
el.requestFullscreen();
- } else if (el2.webkitRequestFullscreen != null) {
- el2.webkitRequestFullscreen(untyped Element.ALLOW_KEYBOARD_INPUT);
- } else return false;
- return true;
+ return true;
+ }
+ return false;
+ }
+
+ public static function cancelFullscreen(el:Element = null):Void {
+ if (document.exitFullscreen != null) document.exitFullscreen();
}
- public static function cancelFullscreen(el:Element):Void {
- final doc:Dynamic = document;
- if (doc.cancelFullScreen != null) doc.cancelFullScreen();
- else if (doc.webkitCancelFullScreen != null) doc.webkitCancelFullScreen();
+ public static function switchToPageFullscreen():Void {
+ final docEl = document.documentElement;
+ if (document.fullscreenElement == docEl) return;
+
+ if (document.fullscreenElement == null) {
+ requestFullscreen(docEl);
+ return;
+ }
+
+ final promise = document.exitFullscreen();
+ if (promise != null) {
+ promise.then(_ -> switchToPageFullscreen()).catchError(_ -> {});
+ } else {
+ Timer.delay(() -> switchToPageFullscreen(), 1);
+ }
}
public static function toggleFullscreen(el:Element):Bool {
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage