diff --git a/source/lime/system/System.hx b/source/lime/system/System.hx index 9a54fbc35..c269456ff 100644 --- a/source/lime/system/System.hx +++ b/source/lime/system/System.hx @@ -141,12 +141,13 @@ class System #if (!lime_doc_gen || sys) public static function exit(code:Int):Void { - #if ((sys || air) && !macro) - if (Application.current != null) + var currentApp = Application.current; + #if ((sys || (js && html5) || air) && !macro) + if (currentApp != null) { - Application.current.onExit.dispatch(code); + currentApp.onExit.dispatch(code); - if (Application.current.onExit.canceled) + if (currentApp.onExit.canceled) { return; } @@ -155,6 +156,11 @@ class System #if sys Sys.exit(code); + #elseif (js && html5) + if (currentApp != null && currentApp.window != null) + { + currentApp.window.close(); + } #elseif air NativeApplication.nativeApplication.exit(code); #end @@ -527,12 +533,11 @@ class System @:noCompletion private static function __registerEntryPoint(projectName:String, entryPoint:Function):Void { // executes first!! - #if sys funkin.backend.utils.NativeAPI.registerAsDPICompatible(); funkin.backend.system.CommandLineHandler.parseCommandLine(Sys.args()); #end - + if (__applicationEntryPoint == null) { __applicationEntryPoint = new Map();