From 2a141600a3176b29a12bb1e18429e3f1e0d7a37c Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Fri, 10 Sep 2021 20:37:09 +0100 Subject: [PATCH] LibWeb: Correctly parse numeric and 'auto' z-index values As with `opacity`, this code expected a Length value, when it is specced to take a Number or `auto`. Now it's correct. :^) --- Userland/Libraries/LibWeb/CSS/StyleProperties.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp index c0c5ee828a..807c624b07 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp @@ -291,10 +291,16 @@ float StyleProperties::line_height(const Layout::Node& layout_node) const Optional StyleProperties::z_index() const { - auto value = property(CSS::PropertyID::ZIndex); - if (!value.has_value()) + auto maybe_value = property(CSS::PropertyID::ZIndex); + if (!maybe_value.has_value()) return {}; - return static_cast(value.value()->to_length().raw_value()); + auto& value = maybe_value.value(); + + if (value->is_auto()) + return 0; + if (value->is_numeric()) + return static_cast(static_cast(*value).value()); + return {}; } Optional StyleProperties::opacity() const