From 0983cd9243997b40e9079eedb6d8e5fdd306d2a9 Mon Sep 17 00:00:00 2001 From: Tobias Christiansen Date: Thu, 22 Apr 2021 22:14:24 +0200 Subject: [PATCH] LibWeb: Add list-style-type: decimal-leading-zero support This doesn't exactly do what you would think from its name: It surely adds an extra leading zero to the front of a number, but only if the number is less than 10. CSS is weird sometimes. --- Userland/Libraries/LibWeb/CSS/Identifiers.json | 1 + Userland/Libraries/LibWeb/CSS/StyleProperties.cpp | 2 ++ Userland/Libraries/LibWeb/CSS/StyleValue.h | 1 + Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp | 7 +++++++ 4 files changed, 11 insertions(+) diff --git a/Userland/Libraries/LibWeb/CSS/Identifiers.json b/Userland/Libraries/LibWeb/CSS/Identifiers.json index 11af8eae41..b8c9252910 100644 --- a/Userland/Libraries/LibWeb/CSS/Identifiers.json +++ b/Userland/Libraries/LibWeb/CSS/Identifiers.json @@ -77,6 +77,7 @@ "crosshair", "dashed", "decimal", + "decimal-leading-zero", "default", "disc", "dotted", diff --git a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp index 853ca513dd..812f398f5b 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp @@ -576,6 +576,8 @@ Optional StyleProperties::list_style_type() const return CSS::ListStyleType::Square; case CSS::ValueID::Decimal: return CSS::ListStyleType::Decimal; + case CSS::ValueID::DecimalLeadingZero: + return CSS::ListStyleType::DecimalLeadingZero; default: return {}; } diff --git a/Userland/Libraries/LibWeb/CSS/StyleValue.h b/Userland/Libraries/LibWeb/CSS/StyleValue.h index d4ad707d38..ac7d84aa2b 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleValue.h +++ b/Userland/Libraries/LibWeb/CSS/StyleValue.h @@ -159,6 +159,7 @@ enum class ListStyleType { Circle, Square, Decimal, + DecimalLeadingZero, }; enum class Overflow : u8 { diff --git a/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp b/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp index d91e2da213..ad99a0b851 100644 --- a/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp +++ b/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp @@ -52,6 +52,13 @@ void ListItemMarkerBox::paint(PaintContext& context, PaintPhase phase) case CSS::ListStyleType::Disc: context.painter().fill_ellipse(marker_rect, color); break; + case CSS::ListStyleType::DecimalLeadingZero: + // This is weird, but in accordance to spec. + context.painter().draw_text( + enclosing, + m_index < 10 ? String::formatted("0{}.", m_index) : String::formatted("{}.", m_index), + Gfx::TextAlignment::Center); + break; case CSS::ListStyleType::None: return;