1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 21:27:34 +00:00

LibWeb: Make SVG <svg> elements behave as CSS replaced elements

This makes SVG-in-HTML behave quite a bit better by following general
replaced layout rules. It also turns <svg> elements into inline-level
boxes instead of block-level boxes.
This commit is contained in:
Andreas Kling 2022-03-18 22:13:26 +01:00
parent 48abbefb99
commit 28b771560a
10 changed files with 21 additions and 14 deletions

View file

@ -15,7 +15,7 @@ NonnullRefPtr<SVGSVGPaintable> SVGSVGPaintable::create(Layout::SVGSVGBox const&
}
SVGSVGPaintable::SVGSVGPaintable(Layout::SVGSVGBox const& layout_box)
: SVGGraphicsPaintable(layout_box)
: PaintableBox(layout_box)
{
}
@ -32,12 +32,12 @@ void SVGSVGPaintable::before_children_paint(PaintContext& context, PaintPhase ph
if (!context.has_svg_context())
context.set_svg_context(SVGContext(absolute_rect()));
SVGGraphicsPaintable::before_children_paint(context, phase);
PaintableBox::before_children_paint(context, phase);
}
void SVGSVGPaintable::after_children_paint(PaintContext& context, PaintPhase phase) const
{
SVGGraphicsPaintable::after_children_paint(context, phase);
PaintableBox::after_children_paint(context, phase);
if (phase != PaintPhase::Foreground)
return;
context.clear_svg_context();