Browse Source

added dismiss all

Nicolas Cannasse 8 years ago
parent
commit
64513859cc
1 changed files with 16 additions and 4 deletions
  1. 16 4
      libs/sdl/sdl/Sdl.hx

+ 16 - 4
libs/sdl/sdl/Sdl.hx

@@ -6,6 +6,8 @@ class Sdl {
 	static var initDone = false;
 	static var isWin32 = false;
 	static var sentinel : hl.UI.Sentinel;
+	static var dismissErrors = false;
+
 	public static function init() {
 		if( initDone ) return;
 		initDone = true;
@@ -62,6 +64,13 @@ class Sdl {
 
 	public dynamic static function reportError( e : Dynamic ) {
 
+		var stack = haxe.CallStack.toString(haxe.CallStack.exceptionStack());
+		var err = try Std.string(e) catch( _ : Dynamic ) "????";
+		Sys.println(err + stack);
+
+		if( dismissErrors )
+			return;
+
 		var wasFS = null;
 		for( w in @:privateAccess Window.windows ) {
 			if( w.fullScreen ) {
@@ -73,20 +82,23 @@ class Sdl {
 		}
 
 		var f = new hl.UI.WinLog("Uncaught Exception", 500, 400);
-		var stack = haxe.CallStack.toString(haxe.CallStack.exceptionStack());
-		var err = try Std.string(e) catch( _ : Dynamic ) "????";
-		Sys.println(err + stack);
 		f.setTextContent(err+"\n"+stack);
 		var but = new hl.UI.Button(f, "Continue");
 		but.onClick = function() {
 			hl.UI.stopLoop();
 		};
+
+		var but = new hl.UI.Button(f, "Dismiss all");
+		but.onClick = function() {
+			dismissErrors = true;
+			hl.UI.stopLoop();
+		};
+
 		var but = new hl.UI.Button(f, "Exit");
 		but.onClick = function() {
 			Sys.exit(0);
 		};
 
-
 		while( hl.UI.loop(true) != Quit )
 			tick();
 		f.destroy();