From 13b4d91f66d1dce494d24ed08a845a5ca3060263 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 4 Jul 2022 22:20:09 +0200 Subject: [PATCH] LibWeb: Always apply min/max cross size constraints to flex items We were neglecting to apply min-size and max-size constraints in the fast path for flex items with a definite cross size. --- Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp index eb80adeee4..755e6e428e 100644 --- a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp @@ -959,7 +959,9 @@ void FlexFormattingContext::determine_hypothetical_cross_size_of_item(FlexItem& // If we have a definite cross size, this is easy! No need to perform layout, we can just use it as-is. if (has_definite_cross_size(item.box)) { - item.hypothetical_cross_size = resolved_definite_cross_size(item.box); + auto clamp_min = has_cross_min_size(item.box) ? specified_cross_min_size(item.box) : 0; + auto clamp_max = has_cross_max_size(item.box) ? specified_cross_max_size(item.box) : NumericLimits::max(); + item.hypothetical_cross_size = css_clamp(resolved_definite_cross_size(item.box), clamp_min, clamp_max); return; }