diff --git a/Userland/Libraries/LibWeb/Layout/ListItemBox.cpp b/Userland/Libraries/LibWeb/Layout/ListItemBox.cpp index 3a731fb171..fc93c62de2 100644 --- a/Userland/Libraries/LibWeb/Layout/ListItemBox.cpp +++ b/Userland/Libraries/LibWeb/Layout/ListItemBox.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2021, Tobias Christiansen * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -49,7 +50,8 @@ void ListItemBox::layout_marker() return; if (!m_marker) { - m_marker = adopt(*new ListItemMarkerBox(document())); + int child_index = parent()->index_of_child(*this).value(); + m_marker = adopt(*new ListItemMarkerBox(document(), computed_values().list_style_type(), child_index + 1)); if (first_child()) m_marker->set_inline(first_child()->is_inline()); append_child(*m_marker); diff --git a/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp b/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp index 995f8039a2..0289783d54 100644 --- a/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp +++ b/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2021, Tobias Christiansen * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,8 +30,10 @@ namespace Web::Layout { -ListItemMarkerBox::ListItemMarkerBox(DOM::Document& document) +ListItemMarkerBox::ListItemMarkerBox(DOM::Document& document, CSS::ListStyleType style_type, size_t index) : Box(document, nullptr, CSS::StyleProperties::create()) + , m_list_style_type(style_type) + , m_index(index) { } diff --git a/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.h b/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.h index e570fd21df..f23b79c260 100644 --- a/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.h +++ b/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2021, Tobias Christiansen * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,10 +33,14 @@ namespace Web::Layout { class ListItemMarkerBox final : public Box { public: - explicit ListItemMarkerBox(DOM::Document&); + explicit ListItemMarkerBox(DOM::Document&, CSS::ListStyleType, size_t index); virtual ~ListItemMarkerBox() override; virtual void paint(PaintContext&, PaintPhase) override; + +private: + CSS::ListStyleType m_list_style_type { CSS::ListStyleType::None }; + size_t m_index; }; }