X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2FBox.java;fp=src%2Forg%2Fibex%2FBox.java;h=6811f21dbe72ffe26006ad6448e20b186e07ddcb;hp=560e7f56afc731db9b10cf8b643873f809a6e24d;hb=0956d7ec1d27b4370c271359cf9a58b5c2e05191;hpb=23dc91860bace0feffdb0f629997432ac2bb3406 diff --git a/src/org/ibex/Box.java b/src/org/ibex/Box.java index 560e7f5..6811f21 100644 --- a/src/org/ibex/Box.java +++ b/src/org/ibex/Box.java @@ -284,7 +284,8 @@ public final class Box extends JSScope implements Scheduler.Task { void solve(boolean findMinimum) { int numkids = 0; for(Box c = firstPackedChild(); c != null; c = c.nextPackedSibling()) numkids++; //#repeat col/row colspan/rowspan contentwidth/contentheight width/height HSHRINK/VSHRINK numregions/numregions_v \ - // maxwidth/maxheight cols/rows minwidth/minheight regions/regions_v targetColumnSize/targetRowSize sizes/sizes_v + // maxwidth/maxheight cols/rows minwidth/minheight regions/regions_v targetColumnSize/targetRowSize sizes/sizes_v \ + // HSHRINK/VSHRINK if (numkids == 0) { if (findMinimum) contentwidth = 0; else targetColumnSize = 0; @@ -336,9 +337,10 @@ public final class Box extends JSScope implements Scheduler.Task { if (regions[r+1] < child.col) continue; if (regions[r] >= min(child.col+child.colspan,cols)) { minregion = r; break; } total -= sizes[r]; + int child_maxwidth = child.test(HSHRINK)?child.contentwidth:child.maxwidth; if (sizes[r] <= (float)(targetColumnSize*(regions[r+1]-regions[r]))) - if ((child.colspan * targetColumnSize) > (child.maxwidth + (float)0.5)) - sizes[r] = (float)Math.min(sizes[r], (regions[r+1]-regions[r])*(child.maxwidth/child.colspan)); + if ((child.colspan * targetColumnSize) > (child_maxwidth + (float)0.5)) + sizes[r] = (float)Math.min(sizes[r], (regions[r+1]-regions[r])*(child_maxwidth/child.colspan)); if ((child.colspan * targetColumnSize) < (child.contentwidth - (float)0.5)) sizes[r] = (float)Math.max(sizes[r], (regions[r+1]-regions[r])*(child.contentwidth/child.colspan)); total += sizes[r];