diff options
-rw-r--r-- | Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp index 20dd8d6111..2ba33e34e8 100644 --- a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp @@ -148,6 +148,18 @@ void FlexFormattingContext::run(Box const& run_box, LayoutMode) // 16. Align all flex lines (per align-content) align_all_flex_lines(); + + // AD-HOC: Layout the inside of all flex items. + for (auto& flex_item : m_flex_items) { + auto independent_formatting_context = layout_inside(flex_item.box, LayoutMode::Default); + independent_formatting_context->parent_context_did_dimension_child_root_box(); + } + + // FIXME: We run the "align all flex lines" step *again* here, in order to override any sizes + // assigned to the flex item by the "layout inside" step above. This is definitely not + // part of the spec, and simply covering up the fact that our inside layout currently + // mutates the height of BFC roots. + align_all_flex_lines(); } void FlexFormattingContext::populate_specified_margins(FlexItem& item, CSS::FlexDirection flex_direction) const |