diff options
Diffstat (limited to 'render/layout.c')
-rw-r--r-- | render/layout.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/render/layout.c b/render/layout.c index f069cd665..b7d9e2034 100644 --- a/render/layout.c +++ b/render/layout.c @@ -2775,7 +2775,8 @@ bool layout_line(struct box *first, int *width, int *y, left == 0 && right == 0)) && (!place_below || (left == 0 && right == 0 && x == 0)) && - cy >= cont->clear_level) { + cy >= cont->clear_level && + cy >= cont->cached_place_below_level) { /* + not cleared or, * cleared and there are no floats to clear * + fits without needing to be placed below or, @@ -2800,6 +2801,9 @@ bool layout_line(struct box *first, int *width, int *y, /* place below into next available space */ int fcy = (cy > cont->clear_level) ? cy : cont->clear_level; + fcy = (fcy > cont->cached_place_below_level) ? + fcy : + cont->cached_place_below_level; fy = (fy > fcy) ? fy : fcy; fy = (fy == cy) ? fy + height : fy; |