From 19e81ab5e92a02f8ca6c00fbf4b6fc3e8c8f8cfc Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Thu, 29 Jun 2006 09:55:31 +0000 Subject: Fix previous commit; it failed to make available_width include mbp such that subtracting them after determining the width works in the case where available_width > box->min_width. svn path=/trunk/netsurf/; revision=2671 --- render/layout.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'render/layout.c') diff --git a/render/layout.c b/render/layout.c index f49dfcfe6..fab0ebc18 100644 --- a/render/layout.c +++ b/render/layout.c @@ -2481,7 +2481,7 @@ bool layout_absolute(struct box *box, struct content *content) int *margin = box->margin; int *padding = box->padding; int *border = box->border; - int available_width; + int available_width = containing_block->width; int space; assert(box->type == BOX_BLOCK || box->type == BOX_TABLE); @@ -2502,13 +2502,11 @@ bool layout_absolute(struct box *box, struct content *content) if (margin[RIGHT] == AUTO) margin[RIGHT] = 0; left = 0; - available_width = containing_block->width - - margin[LEFT] - border[LEFT] - padding[LEFT] - - padding[RIGHT] - border[RIGHT] - margin[RIGHT]; + width = min(max(box->min_width, available_width), box->max_width); - width -= box->margin[LEFT] + box->border[LEFT] + - box->padding[LEFT] + box->padding[RIGHT] + - box->border[RIGHT] + box->margin[RIGHT]; + width -= box->margin[LEFT] + box->border[LEFT] + + box->padding[LEFT] + box->padding[RIGHT] + + box->border[RIGHT] + box->margin[RIGHT]; right = containing_block->width - left - @@ -2556,10 +2554,6 @@ bool layout_absolute(struct box *box, struct content *content) if (margin[RIGHT] == AUTO) margin[RIGHT] = 0; - available_width = containing_block->width - - margin[LEFT] - border[LEFT] - padding[LEFT] - - padding[RIGHT] - border[RIGHT] - margin[RIGHT]; - if (left == AUTO && width == AUTO && right != AUTO) { available_width -= right; -- cgit v1.2.3