diff --git a/Tests/LibWeb/Layout/expected/css-values/calc-min-with-percentage.txt b/Tests/LibWeb/Layout/expected/css-values/calc-min-with-percentage.txt new file mode 100644 index 0000000000..096c0870d5 --- /dev/null +++ b/Tests/LibWeb/Layout/expected/css-values/calc-min-with-percentage.txt @@ -0,0 +1,9 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x116 [BFC] children: not-inline + BlockContainer at (8,8) content-size 500x100 children: not-inline + BlockContainer
at (8,8) content-size 100x100 children: not-inline + +ViewportPaintable (Viewport<#document>) [0,0 800x600] + PaintableWithLines (BlockContainer) [0,0 800x116] + PaintableWithLines (BlockContainer) [8,8 500x100] + PaintableWithLines (BlockContainer
) [8,8 100x100] diff --git a/Tests/LibWeb/Layout/input/css-values/calc-min-with-percentage.html b/Tests/LibWeb/Layout/input/css-values/calc-min-with-percentage.html new file mode 100644 index 0000000000..84e8a288e2 --- /dev/null +++ b/Tests/LibWeb/Layout/input/css-values/calc-min-with-percentage.html @@ -0,0 +1,13 @@ +
\ No newline at end of file diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/CalculatedStyleValue.cpp b/Userland/Libraries/LibWeb/CSS/StyleValues/CalculatedStyleValue.cpp index e0b250afd9..f77baaf931 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleValues/CalculatedStyleValue.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleValues/CalculatedStyleValue.cpp @@ -217,8 +217,18 @@ bool NumericCalculationNode::contains_percentage() const return m_value.has(); } -CalculatedStyleValue::CalculationResult NumericCalculationNode::resolve(Optional, CalculatedStyleValue::PercentageBasis const&) const +CalculatedStyleValue::CalculationResult NumericCalculationNode::resolve(Optional, CalculatedStyleValue::PercentageBasis const& percentage_basis) const { + if (m_value.has()) { + return percentage_basis.visit( + [&](Empty const&) -> CalculatedStyleValue::CalculationResult { + VERIFY_NOT_REACHED(); + }, + [&](auto const& value) { + return CalculatedStyleValue::CalculationResult(value.percentage_of(m_value.get())); + }); + } + return m_value; }