From b1e8c5fb092cb4ef7ccf297e192105b4b7bea2e9 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Wed, 20 Jan 2010 22:38:22 +0000 Subject: Revert float ordering optimisation (r9846) due to effect on stacking order. svn path=/trunk/netsurf/; revision=9853 --- render/layout.c | 40 +++------------------------------------- 1 file changed, 3 insertions(+), 37 deletions(-) (limited to 'render/layout.c') diff --git a/render/layout.c b/render/layout.c index 0cc7b6d68..45a075750 100644 --- a/render/layout.c +++ b/render/layout.c @@ -1673,7 +1673,7 @@ void find_sides(struct box *fl, int y0, int y1, int fy0, fy1, fx0, fx1; LOG(("y0 %i, y1 %i, x0 %i, x1 %i", y0, y1, *x0, *x1)); *left = *right = 0; - for (; fl && fl->y + fl->height >= y0; fl = fl->next_float) { + for (; fl; fl = fl->next_float) { fy0 = fl->y; fy1 = fl->y + fl->height; if (y0 < fy1 && fy0 <= y1) { @@ -2300,42 +2300,8 @@ bool layout_line(struct box *first, int *width, int *y, box_dump(stderr, cont, 0); assert(0); } - /* Insert float into containing block's list of - * floats. (List sorted by y-position of bottom of - * float, in descending order.) */ - if (!cont->float_children) { - /* First float child */ - cont->float_children = b; - b->next_float = NULL; - } else if (b->y + b->height >= cont->float_children->y + - cont->float_children->height) { - /* Float is positioned lower or at same level - * as first float in list */ - b->next_float = cont->float_children; - cont->float_children = b; - } else { - /* Find place in list */ - struct box *t; - for (t = cont->float_children; - t && t->next_float; - t = t->next_float) { - if (b->y + b->height >= - t->next_float->y + - t->next_float->height) { - /* Float positioned mid-list */ - b->next_float = t->next_float; - t->next_float = b; - break; - } else if (!t->next_float->next_float) { - /* Float positioned last in - * list */ - t->next_float->next_float = b; - b->next_float = NULL; - break; - } - } - } - + b->next_float = cont->float_children; + cont->float_children = b; split_box = 0; } } -- cgit v1.2.3