Browse Source

LibWeb: Place block-level boxes in both axes before doing inside layout

This ensures that static position calculations has access to final
box offsets.
Andreas Kling 2 years ago
parent
commit
4580e054f5
1 changed files with 2 additions and 5 deletions
  1. 2 5
      Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp

+ 2 - 5
Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp

@@ -369,8 +369,8 @@ void BlockFormattingContext::layout_block_level_box(Box const& box, BlockContain
 
     compute_width(box, available_space, layout_mode);
 
-    if (is<ReplacedBox>(box) || is<BlockContainer>(box))
-        place_block_level_element_in_normal_flow_vertically(box);
+    place_block_level_element_in_normal_flow_vertically(box);
+    place_block_level_element_in_normal_flow_horizontally(box, available_space);
 
     if (box_state.has_definite_height()) {
         compute_height(box, available_space);
@@ -393,9 +393,6 @@ void BlockFormattingContext::layout_block_level_box(Box const& box, BlockContain
 
     compute_inset(box);
 
-    if (is<ReplacedBox>(box) || is<BlockContainer>(box))
-        place_block_level_element_in_normal_flow_horizontally(box, available_space);
-
     if (is<ListItemBox>(box)) {
         layout_list_item_marker(static_cast<ListItemBox const&>(box));
     }