From: megacz Date: Fri, 30 Jan 2004 06:50:25 +0000 (+0000) Subject: 2002/09/02 18:38:20 X-Git-Tag: RC3~1544 X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=commitdiff_plain;h=6231a0535e90ed18d4509c24d9de88fe6586b289 2002/09/02 18:38:20 darcs-hash:20040130065025-2ba56-eefad2326710ff34b824a96bceef493936dfde7d.gz --- diff --git a/src/org/xwt/Main.java b/src/org/xwt/Main.java index a94ca81..294fd9e 100644 --- a/src/org/xwt/Main.java +++ b/src/org/xwt/Main.java @@ -35,6 +35,9 @@ public class Main extends Applet { public static Applet applet = null; + /** don't check if all surfaces are gone (and quit) until this is true */ + public static boolean doneInitializing = false; + /** applet entry point */ public void init() { if ("true".equals(getParameter("showRenders"))) showRenders = true; @@ -115,6 +118,11 @@ public class Main extends Applet { ThreadMessage.newthread(new JSObject.JSFunction() { public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] arg) throws JavaScriptException { new Box(initialTemplate_f, null); + doneInitializing = true; + if (Surface.allSurfaces.size() == 0) { + Log.log(this, "exiting because all surfaces are gone"); + Platform.exit(); + } return null; } }); diff --git a/src/org/xwt/Surface.java b/src/org/xwt/Surface.java index 1266466..167a5f4 100644 --- a/src/org/xwt/Surface.java +++ b/src/org/xwt/Surface.java @@ -381,7 +381,7 @@ public abstract class Surface { _dispose(); // quit when all windows are closed - if (allSurfaces.size() == 0 && quitIfAllSurfacesGone) { + if (allSurfaces.size() == 0 && quitIfAllSurfacesGone && Main.doneInitializing) { if (Log.on) { if (refreshableSurfaceWasCreated) Log.log(this, "exiting because last remaining surface was disposed"); else Log.log(this, "exiting because no surface was ever created");