From 17aacbec023d9cae25071a92187c01c46b5489ba Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Fri, 16 Jul 2010 17:48:20 +0000 Subject: Record left and right float boxes with negative widths. Fixes overlapping text on new BBC News site. svn path=/trunk/netsurf/; revision=10648 --- render/layout.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/render/layout.c b/render/layout.c index 80cd4fae1..93ac2503e 100644 --- a/render/layout.c +++ b/render/layout.c @@ -2286,16 +2286,14 @@ bool layout_line(struct box *first, int *width, int *y, * Float affects current line */ if (b->type == BOX_FLOAT_LEFT) { b->x = cx + x0; - if (b->width > 0) { + if (b->width > 0) x0 += b->width; - left = b; - } + left = b; } else { b->x = cx + x1 - b->width; - if (b->width > 0) { + if (b->width > 0) x1 -= b->width; - right = b; - } + right = b; } b->y = cy; } else { @@ -2306,8 +2304,7 @@ bool layout_line(struct box *first, int *width, int *y, fy = (fy > fcy) ? fy : fcy; fy = (fy == cy) ? fy + height : fy; - place_float_below(b, *width, - cx, fy, cont); + place_float_below(b, *width, cx, fy, cont); fy = b->y; if (d->style && css_computed_clear(d->style) != CSS_CLEAR_NONE) { -- cgit v1.2.3