From 38bd0b13fe12d5763f2500da61b8902193e4bb32 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Thu, 29 Jun 2006 09:37:18 +0000 Subject: Compensate for box->{min_width,max_width} including mbp when auto-widthing absolutely positioned content. svn path=/trunk/netsurf/; revision=2670 --- render/layout.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'render/layout.c') diff --git a/render/layout.c b/render/layout.c index 248a944d4..f49dfcfe6 100644 --- a/render/layout.c +++ b/render/layout.c @@ -2506,6 +2506,10 @@ bool layout_absolute(struct box *box, struct content *content) 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]; + right = containing_block->width - left - margin[LEFT] - border[LEFT] - padding[LEFT] - @@ -2560,6 +2564,10 @@ bool layout_absolute(struct box *box, struct content *content) available_width -= 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]; + left = containing_block->width - margin[LEFT] - border[LEFT] - padding[LEFT] - width - @@ -2576,6 +2584,10 @@ bool layout_absolute(struct box *box, struct content *content) available_width -= left; 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]; + right = containing_block->width - left - margin[LEFT] - border[LEFT] - padding[LEFT] - -- cgit v1.2.3