mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
LibWeb: Make the ListItemMarkerBox index-aware.
In the ListItemBox we get the index of the current <li> element in the parent and pass it to the ListItemMarkerBox. This patch is work towards #2059
This commit is contained in:
parent
c09ac536c5
commit
bfcfe84240
Notes:
sideshowbarker
2024-07-18 19:20:09 +09:00
Author: https://github.com/TobyAsE Commit: https://github.com/SerenityOS/serenity/commit/bfcfe842400 Pull-request: https://github.com/SerenityOS/serenity/pull/6431 Issue: https://github.com/SerenityOS/serenity/issues/2059 Reviewed-by: https://github.com/Lubrsi Reviewed-by: https://github.com/awesomekling
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2021, Tobias Christiansen <tobi@tobyase.de>
|
||||
* 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<ListItemBox>(*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);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2021, Tobias Christiansen <tobi@tobyase.de>
|
||||
* 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)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2021, Tobias Christiansen <tobi@tobyase.de>
|
||||
* 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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue