Set focus/activate on HTML5 windows using visibilitychanged event as well (close #1401)

This commit is contained in:
Joshua Granick
2020-09-24 10:58:02 -07:00
parent 93eddd1f3d
commit d918341db0

View File

@@ -23,11 +23,12 @@ import lime.ui.Window;
@:access(lime.ui.Window)
class HTML5Application
{
private var gameDeviceCache = new Map<Int, GameDeviceData>();
private var accelerometer:Sensor;
private var currentUpdate:Float;
private var deltaTime:Float;
private var framePeriod:Float;
private var gameDeviceCache = new Map<Int, GameDeviceData>();
private var hidden:Bool;
private var lastUpdate:Float;
private var nextUpdate:Float;
private var parent:Application;
@@ -441,12 +442,40 @@ class HTML5Application
switch (event.type)
{
case "focus":
parent.window.onFocusIn.dispatch();
parent.window.onActivate.dispatch();
if (hidden)
{
parent.window.onFocusIn.dispatch();
parent.window.onActivate.dispatch();
hidden = false;
}
case "blur":
parent.window.onFocusOut.dispatch();
parent.window.onDeactivate.dispatch();
if (!hidden)
{
parent.window.onFocusOut.dispatch();
parent.window.onDeactivate.dispatch();
hidden = true;
}
case "visibilitychange":
if (Browser.document.hidden)
{
if (!hidden)
{
parent.window.onFocusOut.dispatch();
parent.window.onDeactivate.dispatch();
hidden = true;
}
}
else
{
if (hidden)
{
parent.window.onFocusIn.dispatch();
parent.window.onActivate.dispatch();
hidden = false;
}
}
case "resize":
parent.window.__backend.handleResizeEvent(event);