From e8ef816111d029870b530b417641e2331f8c4f6b Mon Sep 17 00:00:00 2001 From: James Bursa Date: Sun, 15 Jan 2006 22:25:40 +0000 Subject: [project @ 2006-01-15 22:25:40 by bursa] Fix crash related to negative margins on inlines. svn path=/import/netsurf/; revision=2021 --- render/layout.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'render') diff --git a/render/layout.c b/render/layout.c index a607261fd..7df848f0a 100644 --- a/render/layout.c +++ b/render/layout.c @@ -3,7 +3,7 @@ * Licensed under the GNU General Public License, * http://www.opensource.org/licenses/gpl-license * Copyright 2005 Richard Wilson - * Copyright 2005 James Bursa + * Copyright 2006 James Bursa * Copyright 2003 Phil Mellor */ @@ -1095,12 +1095,17 @@ bool layout_line(struct box *first, int width, int *y, for (i = 0; i != 4; i++) if (b->margin[i] == AUTO) b->margin[i] = 0; + x += b->margin[LEFT] + b->border[LEFT] + + b->padding[LEFT]; if (b->inline_end) { b->inline_end->margin[RIGHT] = b->margin[RIGHT]; b->inline_end->padding[RIGHT] = b->padding[RIGHT]; b->inline_end->border[RIGHT] = b->border[RIGHT]; + } else { + x += b->padding[RIGHT] + b->border[RIGHT] + + b->margin[RIGHT]; } } else if (b->type == BOX_INLINE_END) { b->width = 0; @@ -1110,6 +1115,8 @@ bool layout_line(struct box *first, int width, int *y, } else { space_after = 0; } + x += b->padding[RIGHT] + b->border[RIGHT] + + b->margin[RIGHT]; continue; } -- cgit v1.2.3