LibWeb: Don't collapse vertical margins between floats

Just stack floats at their vertical margin edge instead of letting their
border boxes rub up against each other.
This commit is contained in:
Andreas Kling 2022-09-09 11:11:22 +02:00
parent 524ec95bcd
commit 3f960781fd
Notes: sideshowbarker 2024-07-17 07:19:21 +09:00

View File

@ -663,13 +663,13 @@ void BlockFormattingContext::layout_floating_box(Box const& box, BlockContainer
} else {
// We ran out of horizontal space on this "float line", and need to break.
float_to_edge();
float lowest_border_edge = 0;
float lowest_margin_edge = 0;
for (auto const& box : side_data.current_boxes) {
auto const& box_state = m_state.get(box.box);
lowest_border_edge = max(lowest_border_edge, box_state.border_box_height());
lowest_margin_edge = max(lowest_margin_edge, box_state.margin_box_height());
}
side_data.y_offset += lowest_border_edge;
side_data.y_offset += lowest_margin_edge;
// Also, forget all previous boxes floated to this side while since they're no longer relevant.
side_data.clear();