From 4e1fad39dce26930964fb8897b43d790ce08216c Mon Sep 17 00:00:00 2001 From: Guillaume Ayoub Date: Thu, 22 Mar 2018 02:00:17 +0100 Subject: [PATCH] Fix floating-point number error to fix floating box layout Fix #583. --- weasyprint/layout/inlines.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/weasyprint/layout/inlines.py b/weasyprint/layout/inlines.py index 525de4092..458141748 100644 --- a/weasyprint/layout/inlines.py +++ b/weasyprint/layout/inlines.py @@ -132,6 +132,10 @@ def get_next_linebox(context, linebox, position_y, skip_stack, line.margin_bottom = 0 line.translate(offset_x, offset_y) + # Avoid floating point errors, as position_y - top + top != position_y + # Removing this line breaks the position == linebox.position test below + # See https://github.com/Kozea/WeasyPrint/issues/583 + line.position_y = position_y if line.height <= candidate_height: break