summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/Layout
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries/LibWeb/Layout')
-rw-r--r--Userland/Libraries/LibWeb/Layout/InlineNode.cpp13
-rw-r--r--Userland/Libraries/LibWeb/Layout/InlineNode.h1
2 files changed, 6 insertions, 8 deletions
diff --git a/Userland/Libraries/LibWeb/Layout/InlineNode.cpp b/Userland/Libraries/LibWeb/Layout/InlineNode.cpp
index 0ef7b62d85..bc7a6c8a84 100644
--- a/Userland/Libraries/LibWeb/Layout/InlineNode.cpp
+++ b/Userland/Libraries/LibWeb/Layout/InlineNode.cpp
@@ -40,18 +40,17 @@ void InlineNode::split_into_lines(InlineFormattingContext& context, LayoutMode l
}
}
-void InlineNode::paint_fragment(PaintContext& context, const LineBoxFragment& fragment, PaintPhase phase) const
+void InlineNode::paint(PaintContext& context, PaintPhase phase)
{
auto& painter = context.painter();
if (phase == PaintPhase::Background) {
- painter.fill_rect(enclosing_int_rect(fragment.absolute_rect()), computed_values().background_color());
+ containing_block()->for_each_fragment([&](auto& fragment) {
+ if (is_inclusive_ancestor_of(fragment.layout_node()))
+ painter.fill_rect(enclosing_int_rect(fragment.absolute_rect()), computed_values().background_color());
+ return IterationDecision::Continue;
+ });
}
-}
-
-void InlineNode::paint(PaintContext& context, PaintPhase phase)
-{
- auto& painter = context.painter();
if (phase == PaintPhase::Foreground && document().inspected_node() == dom_node()) {
// FIXME: This paints a double-thick border between adjacent fragments, where ideally there
diff --git a/Userland/Libraries/LibWeb/Layout/InlineNode.h b/Userland/Libraries/LibWeb/Layout/InlineNode.h
index 5f6d4d4597..e2e39600f3 100644
--- a/Userland/Libraries/LibWeb/Layout/InlineNode.h
+++ b/Userland/Libraries/LibWeb/Layout/InlineNode.h
@@ -16,7 +16,6 @@ public:
virtual ~InlineNode() override;
virtual void paint(PaintContext&, PaintPhase) override;
- virtual void paint_fragment(PaintContext&, const LineBoxFragment&, PaintPhase) const override;
virtual void split_into_lines(InlineFormattingContext&, LayoutMode) override;
};