fixed bug 529
[org.ibex.core.git] / src / org / ibex / Box.java
index fb4e985..7a16c49 100644 (file)
@@ -312,7 +312,7 @@ public final class Box extends JSScope implements Scheduler.Task {
         //#repeat col/row colspan/rowspan contentwidth/contentheight width/height HSHRINK/VSHRINK numregions/numregions_v \
         //        maxwidth/maxheight cols/rows minwidth/minheight lp_h/lp lp_h/lp easy_width/easy_height regions/regions_v \
         //        computeRegions/computeRegions_v
-        if (numkids > 0 && cols > 1) do {
+        if (numkids > 0) do {
             computeRegions();
             int nc = numregions * 3 + numkids * 2 + 3;
             if (coeff == null || nc+1>coeff.length) coeff = new float[nc+1];
@@ -534,8 +534,8 @@ public final class Box extends JSScope implements Scheduler.Task {
         case "hshrink": return B(test(HSHRINK));
         case "vshrink": return B(test(VSHRINK));
         case "aspect": return N(aspect);
-        case "x": return (parent == null || !test(VISIBLE)) ? N(0) : N(x);
-        case "y": return (parent == null || !test(VISIBLE)) ? N(0) : N(y);
+        case "x": return (parent == null || !test(VISIBLE)) ? N(0) : test(PACKED) ? N(x) : N(ax);
+        case "y": return (parent == null || !test(VISIBLE)) ? N(0) : test(PACKED) ? N(y) : N(ay);
         case "cols": return test(FIXED) == COLS ? N(cols) : N(0);
         case "rows": return test(FIXED) == ROWS ? N(rows) : N(0);
         case "colspan": return N(colspan);
@@ -823,7 +823,7 @@ public final class Box extends JSScope implements Scheduler.Task {
             }
 
         if (!obscured && !found)
-            if ("_Move".equals(name) || wasinside)
+            if ("_Move".equals(name) || name.startsWith("_Release") || wasinside)
                 if (name != null)
                     putAndTriggerTrapsAndCatchExceptions(name.substring(1), value);
     }