mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 19:58:11 +00:00
LibWeb: Compute position of relative blocks before placing them
Turns out compute_position should be invoked before placing the element
in normal flow. Otherwise, the position isn't set on the first layout.
The effect was that the block would "jump" into place on a secondary
layout.
This is a follow-up to commit:
deda7c8995
This commit is contained in:
parent
5b617df496
commit
c21eafbf38
1 changed files with 3 additions and 3 deletions
|
@ -409,14 +409,14 @@ void BlockFormattingContext::layout_block_level_children(Box& box, LayoutMode la
|
|||
layout_inside(child_box, layout_mode);
|
||||
compute_height(child_box);
|
||||
|
||||
if (child_box.computed_values().position() == CSS::Position::Relative)
|
||||
compute_position(child_box);
|
||||
|
||||
if (is<ReplacedBox>(child_box))
|
||||
place_block_level_replaced_element_in_normal_flow(child_box, box);
|
||||
else if (is<BlockBox>(child_box))
|
||||
place_block_level_non_replaced_element_in_normal_flow(child_box, box);
|
||||
|
||||
if (child_box.computed_values().position() == CSS::Position::Relative)
|
||||
compute_position(child_box); // Note: Shifting position should occur after the above layout.
|
||||
|
||||
// FIXME: This should be factored differently. It's uncool that we mutate the tree *during* layout!
|
||||
// Instead, we should generate the marker box during the tree build.
|
||||
if (is<ListItemBox>(child_box))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue