summaryrefslogtreecommitdiff
path: root/render/layout.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2006-06-29 09:55:31 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2006-06-29 09:55:31 +0000
commit19e81ab5e92a02f8ca6c00fbf4b6fc3e8c8f8cfc (patch)
tree1bc48db4f1a6003a13d59720a59c867a5b265762 /render/layout.c
parent38bd0b13fe12d5763f2500da61b8902193e4bb32 (diff)
downloadnetsurf-19e81ab5e92a02f8ca6c00fbf4b6fc3e8c8f8cfc.tar.gz
netsurf-19e81ab5e92a02f8ca6c00fbf4b6fc3e8c8f8cfc.tar.bz2
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
Diffstat (limited to 'render/layout.c')
-rw-r--r--render/layout.c16
1 files changed, 5 insertions, 11 deletions
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;