From 1f7e6cc02220420c0852e21b101f8f9c28beb2f0 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 26 Mar 2023 11:57:12 +0200 Subject: [PATCH] LibWeb: Use zero automatic minimum size for scroll-container flex items The "flex item automatic minimum size in the main axis is the content-based minimum size" behavior should only apply to flex items that aren't scroll containers. We were doing it for all flex items. --- .../Libraries/LibWeb/Layout/FlexFormattingContext.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp index 7333fedcf2..15578fd580 100644 --- a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp @@ -713,8 +713,12 @@ void FlexFormattingContext::determine_flex_base_size_and_hypothetical_main_size( // https://drafts.csswg.org/css-flexbox-1/#min-size-auto CSSPixels FlexFormattingContext::automatic_minimum_size(FlexItem const& item) const { - // FIXME: Deal with scroll containers. - return content_based_minimum_size(item); + // To provide a more reasonable default minimum size for flex items, + // the used value of a main axis automatic minimum size on a flex item that is not a scroll container is its content-based minimum size; + // for scroll containers the automatic minimum size is zero, as usual. + if (!item.box->is_scroll_container()) + return content_based_minimum_size(item); + return 0; } // https://drafts.csswg.org/css-flexbox-1/#specified-size-suggestion