fixed bug 500
[org.ibex.core.git] / src / org / ibex / Box.java
index f51723f..f8b4bf5 100644 (file)
@@ -178,8 +178,9 @@ public final class Box extends JSScope implements Scheduler.Task {
         if (texture != null) {
             if (texture.isLoaded) { minwidth = min(texture.width, maxwidth); minheight = min(texture.height, maxheight); }
             else { JS res = texture.stream; texture = null; throw new JSExn("image not found: "+res); }
+        } else {
+            Log.warn(Box.class, "perform() called with null texture");
         }
-
         MARK_REPACK;
         MARK_REFLOW;
         MARK_RESIZE;
@@ -378,10 +379,9 @@ public final class Box extends JSScope implements Scheduler.Task {
         int globaly = parenty + (parent == null ? 0 : y);
 
         // intersect the x,y,w,h rendering window with ourselves; quit if it's empty
-
         if (test(CLIP)) {
-            cx1 = max(cx1, parent == null ? 0 : globalx);
-            cy1 = max(cy1, parent == null ? 0 : globaly);
+            cx1 = max(cx1, globalx);
+            cy1 = max(cy1, globaly);
             cx2 = min(cx2, globalx + width);
             cy2 = min(cy2, globaly + height);
             if (cx2 <= cx1 || cy2 <= cy1) return;
@@ -697,6 +697,7 @@ public final class Box extends JSScope implements Scheduler.Task {
             fillcolor = newfillcolor;
         } else if(value instanceof JS) {
             texture = Picture.load((JS)value, this);
+            if (texture != null) perform();
         } else {
             throw new JSExn("fill must be null, a String, or a stream, not a " + value.getClass());
         }