2002/04/30 01:41:01
[org.ibex.core.git] / src / org / xwt / Box.java
index 1fc2e82..f3c92d6 100644 (file)
@@ -225,13 +225,6 @@ public final class Box extends JSObject {
     /** Holds four "strip images" -- 0=top, 1=bottom, 2=left, 3=right, 4=all */
     Picture[] border = null;
         
-    /**
-     *  The dirty() method walks up the tree, clipping the region being dirtied to each parent -- if this value is less than or
-     *  equal to surface.dirtiedTimeStamp, it means that the entire screen region covered by this box has been dirtied, so dirty()'s on
-     *  children can short-circuit.
-     */
-    int dirtiedTimeStamp = 0;
-
     /** true iff the box's background image should be tiled */
     boolean tile = false;
 
@@ -553,13 +546,11 @@ public final class Box extends JSObject {
     /** Adds the node's current actual geometry to the Surface's dirty list */
     void dirty() {
         dirty(pos(0), pos(1), size(0), size(1));
-        if (surface != null) dirtiedTimeStamp = surface.dirtiedTimeStamp + 1;
     }
 
     /** Adds the intersection of (x,y,w,h) and the node's current actual geometry to the Surface's dirty list */
     final void dirty(int x, int y, int w, int h) {
         for(Box cur = this; cur != null; cur = cur.getParent()) {
-            if (surface != null && cur.dirtiedTimeStamp > surface.dirtiedTimeStamp && cur.dirtiedTimeStamp < Integer.MAX_VALUE - 1) return;
             w = min(x + w, cur.pos(0) + cur.size(0)) - max(x, cur.pos(0));
             h = min(y + h, cur.pos(1) + cur.size(1)) - max(y, cur.pos(1));
             x = max(x, cur.pos(0));
@@ -817,7 +808,6 @@ public final class Box extends JSObject {
 
     /** Renders self and children within the specified region. All rendering operations are clipped to xIn,yIn,wIn,hIn */
     void render(int xIn, int yIn, int wIn, int hIn, DoubleBuffer buf) {
-        dirtiedTimeStamp = surface.dirtiedTimeStamp;
         if (surface.abort || invisible) return;
 
         // intersect the x,y,w,h rendering window with ourselves; quit if it's empty
@@ -979,15 +969,15 @@ public final class Box extends JSObject {
 
         if (font.lastIndexOf('d') > i) {
             for(int j = pos(0) + pad(0); j < pos(0) + pad(0) + textdim(0); j += 2)
-                buf.fillRect(j, pos(1) + pad(1) + (xwf == null ? Platform.getMaxAscent(font) : xwf.getMaxAscent()) + 3,
-                             j + 1, pos(1) + pad(1) + (xwf == null ? Platform.getMaxAscent(font) : xwf.getMaxAscent()) + 3 + 1,
+                buf.fillRect(j, pos(1) + pad(1) + (xwf == null ? Platform.getMaxAscent(font) : xwf.getMaxAscent()) + 2,
+                             j + 1, pos(1) + pad(1) + (xwf == null ? Platform.getMaxAscent(font) : xwf.getMaxAscent()) + 2 + 1,
                              textcolor);
 
         } else if (font.lastIndexOf('u') > i) {
             buf.fillRect(pos(0) + pad(0),
-                        pos(1) + pad(1) + (xwf == null ? Platform.getMaxAscent(font) : xwf.getMaxAscent()) + 3,
+                        pos(1) + pad(1) + (xwf == null ? Platform.getMaxAscent(font) : xwf.getMaxAscent()) + 2,
                         pos(0) + pad(0) + textdim(0),
-                        pos(1) + pad(1) + (xwf == null ? Platform.getMaxAscent(font) : xwf.getMaxAscent()) + 3 + 1,
+                        pos(1) + pad(1) + (xwf == null ? Platform.getMaxAscent(font) : xwf.getMaxAscent()) + 2 + 1,
                         textcolor);
         }
 
@@ -1089,6 +1079,7 @@ public final class Box extends JSObject {
         if (name.equals("Array")) return JSObject.defaultObjects.get("Array", null);
         if (name.equals("Function")) return JSObject.defaultObjects.get("Function", null);
         if (name.equals("TypeError")) return JSObject.defaultObjects.get("TypeError", null);
+        if (name.equals("ConversionError")) return JSObject.defaultObjects.get("ConversionError", null);
 
         // See if we're reading back the function value of a trap
         if (name.charAt(0) == '_') {
@@ -1115,7 +1106,8 @@ public final class Box extends JSObject {
         if (traps != null && traps.get(name) != null) return true;
         if (name.charAt(0) == '_') return true;
         if (SpecialBoxProperty.specialBoxProperties.get(name) != null) return true;
-        if (name.equals("Function") || name.equals("Array") || name.equals("Object") || name.equals("TypeError")) return true;
+        if (name.equals("Function") || name.equals("Array") || name.equals("Object") ||
+            name.equals("TypeError") || name.equals("ConversionError")) return true;
         return super.has(name, start);
     }