Revision: 3511 http://vexi.svn.sourceforge.net/vexi/?rev=3511&view=rev Author: clrg Date: 2009-05-26 10:57:27 +0000 (Tue, 26 May 2009)
Log Message: ----------- Couple of fixes Modified Paths: -------------- trunk/core/org.vexi.core/src/org/vexi/core/Box.jpp trunk/core/org.vexi.core/src/org/vexi/core/WriteTrapChain.java Modified: trunk/core/org.vexi.core/src/org/vexi/core/Box.jpp =================================================================== --- trunk/core/org.vexi.core/src/org/vexi/core/Box.jpp 2009-05-26 02:29:53 UTC (rev 3510) +++ trunk/core/org.vexi.core/src/org/vexi/core/Box.jpp 2009-05-26 10:57:27 UTC (rev 3511) @@ -1251,7 +1251,7 @@ //#switch (JSU.toString(name)) case "__treedepth": return JSU.N(depth(this)); // FIXME: this is for debugging - move to devl? //case "props": return mirror(); - case "surface": return getSurfaceObject(); + case "surface": return getSurfaceObject(parent); case "forcereflow": return METHOD; case "sendEvent": return METHOD; case "distanceto": return METHOD; @@ -1658,9 +1658,6 @@ // JS surface/visible Handling //////////////////////////////////////////////////////// - /** shorthand for invoking getSurfaceObject a box parent */ - private final JS getSurfaceObject() throws JSExn { return getSurfaceObject(parent); } - /** recursively attempt to fetch a surface object */ static private final JS getSurfaceObject(Box b) throws JSExn { do { @@ -1689,14 +1686,14 @@ if (trapchain == null) trapchain = new WriteTrapChain(); val = trapchain.beforeCascade(wtrap(SC_surface), val); // interrupted by a JS exception - if (trapchain.returnedNormally()) + if (trapchain.interruptedByException()) return trapchain; } int i=0; for (Box b = getChild(i); b!=null; b=getChild(++i)) { trapchain = b.fireSurfaceTraps(val, trapchain); // interrupted by a JS exception - if (trapchain != null && trapchain.returnedNormally()) + if (trapchain != null && trapchain.interruptedByException()) return trapchain; } return trapchain; @@ -1713,7 +1710,7 @@ if (trapchain == null) trapchain = new WriteTrapChain(); val = trapchain.beforeCascade(wtrap(SC_visible), val); // interrupted by a JS exception - if (trapchain.returnedNormally()) + if (trapchain.interruptedByException()) return trapchain; } int i=0; @@ -1721,7 +1718,7 @@ if (b.test(DISPLAY)) { trapchain = b.fireVisibleTraps(val, trapchain); // interrupted by a JS exception - if (trapchain != null && trapchain.returnedNormally()) + if (trapchain != null && trapchain.interruptedByException()) return trapchain; } } @@ -1777,7 +1774,7 @@ // FIXME handle Enter/Leave better clear(MOUSEINSIDE); boolean wasvisible = isVisible(); - JS oldsurface = getSurfaceObject(); + JS oldsurface = getSurfaceObject(oldparent); JS newsurface = getSurfaceObject(newparent); // call pre-cascade traps WriteTrapChain trapchain = oldsurface==newsurface ? null : fireSurfaceTraps(newsurface, null); Modified: trunk/core/org.vexi.core/src/org/vexi/core/WriteTrapChain.java =================================================================== --- trunk/core/org.vexi.core/src/org/vexi/core/WriteTrapChain.java 2009-05-26 02:29:53 UTC (rev 3510) +++ trunk/core/org.vexi.core/src/org/vexi/core/WriteTrapChain.java 2009-05-26 10:57:27 UTC (rev 3511) @@ -15,11 +15,10 @@ /** add a trap on 'b.prop' to the trap chain by executing pre-put of 'val' */ public JS beforeCascade(Trap t, JS val) { + if (t == null) return val; try { - if (t != null) { - chainlength++; - return Main.SCHEDULER.runBeforePut(t, val); - } + chainlength++; + return Main.SCHEDULER.runBeforePut(t, val); } catch (JSExn e) { chainlength--; exn = e; @@ -27,7 +26,7 @@ return null; } - public boolean returnedNormally() { return exn==null; } + public boolean interruptedByException() { return exn!=null; } /** use to invoke internal finishTraps */ public void finishTraps() throws JSExn { finishTraps(exn); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://www.creativitycat.com _______________________________________________ Vexi-svn mailing list Vexi-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/vexi-svn