1
0
Fork 0

Wrong subtraction order lead to the "extra" space available (instead

of the extra space *required*) in a rowspan object being redistributed
back into the span, leading to a near-doubling of the size for small
objects with large span ranges.
This commit is contained in:
andy 2007-07-05 21:25:01 +00:00
parent 4238a46faa
commit 389e23b867

View file

@ -315,7 +315,7 @@ void LayoutWidget::doTable(bool doLayout, int* w, int* h)
int total = 0; int total = 0;
for(j=0; j<cell->rspan; j++) for(j=0; j<cell->rspan; j++)
total += rowSizes[cell->row + j]; total += rowSizes[cell->row + j];
int extra = total - cell->h; int extra = cell->h - total;
if(extra > 0) { if(extra > 0) {
for(j=0; j<cell->rspan; j++) { for(j=0; j<cell->rspan; j++) {
int chunk = extra / (cell->rspan - j); int chunk = extra / (cell->rspan - j);
@ -328,7 +328,7 @@ void LayoutWidget::doTable(bool doLayout, int* w, int* h)
int total = 0; int total = 0;
for(j=0; j<cell->cspan; j++) for(j=0; j<cell->cspan; j++)
total += colSizes[cell->col + j]; total += colSizes[cell->col + j];
int extra = total - cell->w; int extra = cell->w - total;
if(extra > 0) { if(extra > 0) {
for(j=0; j<cell->cspan; j++) { for(j=0; j<cell->cspan; j++) {
int chunk = extra / (cell->cspan - j); int chunk = extra / (cell->cspan - j);