summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2010-01-20 22:38:22 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2010-01-20 22:38:22 +0000
commitb1e8c5fb092cb4ef7ccf297e192105b4b7bea2e9 (patch)
tree47b0ebeda6b5ba63104c56d77d9a46e4a5b3a0a8
parente5d932b72a12f9a2145d96f72b348f998e93a318 (diff)
downloadnetsurf-b1e8c5fb092cb4ef7ccf297e192105b4b7bea2e9.tar.gz
netsurf-b1e8c5fb092cb4ef7ccf297e192105b4b7bea2e9.tar.bz2
Revert float ordering optimisation (r9846) due to effect on stacking order.
svn path=/trunk/netsurf/; revision=9853
-rw-r--r--render/layout.c40
1 files changed, 3 insertions, 37 deletions
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;
}
}