From 2f891fd4b86928e3f50cdac3a77f67cc2dcef9ad Mon Sep 17 00:00:00 2001 From: Tobias Christiansen Date: Fri, 17 Sep 2021 23:44:58 +0200 Subject: LibWeb: Flexbox: Take parent's width in the flex container for layouting If our parent in the FlexFormattingContext also was a flex-container, we didn't give our children any meaningful width to play with into layout_inside(), which resulted in way too narrow layouting. Now the width of the parent gets borrowed if the own width isn't specified. --- Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'Userland/Libraries/LibWeb/Layout') diff --git a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp index db7a82b6d1..50a66d7a99 100644 --- a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp @@ -222,6 +222,9 @@ void FlexFormattingContext::run(Box& box, LayoutMode) // This is particularly important since we take references to the items stored in flex_items // later, whose addresses won't be stable if we added or removed any items. Vector flex_items; + if (!box.has_definite_width()) + box.set_width(box.width_of_logical_containing_block()); + box.for_each_child_of_type([&](Box& child_box) { layout_inside(child_box, LayoutMode::Default); // Skip anonymous text runs that are only whitespace. -- cgit v1.2.3