From 2d50dee92091e28ed71b7467fe74538d61104f52 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 16 Jan 2024 12:07:23 +0100 Subject: [PATCH] LibWeb: Use correct max-size in intrinsic sizing of column flex layout Regressed in 72dd37438dc7da2150a855b63135afff08994d40 --- ...sic-main-size-with-cross-max-size-constraint.txt | 13 +++++++++++++ ...ic-main-size-with-cross-max-size-constraint.html | 13 +++++++++++++ .../LibWeb/Layout/FlexFormattingContext.cpp | 2 +- 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 Tests/LibWeb/Layout/expected/flex/column-layout-intrinsic-main-size-with-cross-max-size-constraint.txt create mode 100644 Tests/LibWeb/Layout/input/flex/column-layout-intrinsic-main-size-with-cross-max-size-constraint.html diff --git a/Tests/LibWeb/Layout/expected/flex/column-layout-intrinsic-main-size-with-cross-max-size-constraint.txt b/Tests/LibWeb/Layout/expected/flex/column-layout-intrinsic-main-size-with-cross-max-size-constraint.txt new file mode 100644 index 0000000000..d6ccdf5431 --- /dev/null +++ b/Tests/LibWeb/Layout/expected/flex/column-layout-intrinsic-main-size-with-cross-max-size-constraint.txt @@ -0,0 +1,13 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x116 [BFC] children: not-inline + Box at (8,8) content-size 784x100 flex-container(column) [FFC] children: not-inline + BlockContainer
at (8,8) content-size 784x100 flex-item [BFC] children: inline + frag 0 from TextNode start: 0, length: 16, rect: [8,8 126.390625x17] baseline: 13.296875 + "Start free trial" + TextNode <#text> + +ViewportPaintable (Viewport<#document>) [0,0 800x600] + PaintableWithLines (BlockContainer) [0,0 800x116] + PaintableBox (Box) [8,8 784x100] + PaintableWithLines (BlockContainer
) [8,8 784x100] + TextPaintable (TextNode<#text>) diff --git a/Tests/LibWeb/Layout/input/flex/column-layout-intrinsic-main-size-with-cross-max-size-constraint.html b/Tests/LibWeb/Layout/input/flex/column-layout-intrinsic-main-size-with-cross-max-size-constraint.html new file mode 100644 index 0000000000..70c2e8cfcb --- /dev/null +++ b/Tests/LibWeb/Layout/input/flex/column-layout-intrinsic-main-size-with-cross-max-size-constraint.html @@ -0,0 +1,13 @@ +
Start free trial diff --git a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp index e127b5a301..76dbc78f34 100644 --- a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp @@ -1686,7 +1686,7 @@ CSSPixels FlexFormattingContext::calculate_intrinsic_main_size_of_flex_container auto const& computed_max_size = this->computed_main_max_size(item.box); auto clamp_min = (!computed_min_size.is_auto() && !computed_min_size.contains_percentage()) ? specified_main_min_size(item.box) : automatic_minimum_size(item); - auto clamp_max = (!should_treat_cross_max_size_as_none(item.box) && !computed_max_size.contains_percentage()) ? specified_main_max_size(item.box) : CSSPixels::max(); + auto clamp_max = (!should_treat_main_max_size_as_none(item.box) && !computed_max_size.contains_percentage()) ? specified_main_max_size(item.box) : CSSPixels::max(); result = css_clamp(result, clamp_min, clamp_max);