LibWeb: Let LineBuilder decide on Y-coordinate for float insertion

Instead of reaching into the IFC of the LineBuilder from the BFC, we
should let LineBuilder determine how to deal with the running vertical
float clearance. No functional changes.
This commit is contained in:
Jelle Raaijmakers 2025-04-01 11:44:23 +02:00
parent 191907037a
commit 0c8c4c2bf1
3 changed files with 2 additions and 4 deletions

View file

@ -1051,7 +1051,7 @@ void BlockFormattingContext::layout_floating_box(Box const& box, BlockContainer
// First we place the box normally (to get the right y coordinate.)
// If we have a LineBuilder, we're in the middle of inline layout, otherwise this is block layout.
if (line_builder) {
auto y = max(line_builder->y_for_float_to_be_inserted_here(box), line_builder->inline_formatting_context().vertical_float_clearance());
auto y = line_builder->y_for_float_to_be_inserted_here(box);
box_state.set_content_y(y + box_state.margin_box_top());
} else {
place_block_level_element_in_normal_flow_vertically(box, y + box_state.margin_top);

View file

@ -166,7 +166,7 @@ CSSPixels LineBuilder::y_for_float_to_be_inserted_here(Box const& box)
candidate_block_offset = highest_intersection_bottom.value();
}
return candidate_block_offset;
return max(candidate_block_offset, m_context.vertical_float_clearance());
}
bool LineBuilder::should_break(CSSPixels next_item_width)

View file

@ -46,8 +46,6 @@ public:
void recalculate_available_space();
CSSPixels y_for_float_to_be_inserted_here(Box const&);
auto& inline_formatting_context() { return m_context; }
void did_introduce_clearance(CSSPixels);
private: