1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 23:15:07 +00:00
serenity/Userland/Libraries/LibWeb/Layout/SVGSVGBox.cpp
Sam Atkins aba8774c9c LibWeb: Give SVG geometry elements a position
This makes the selected-in-the-inspector outline appear in the right
place. We take the stroke-width into account when producing the
bounding box, which makes the fit nice and snug. :^)
2022-02-16 21:47:53 +01:00

35 lines
890 B
C++

/*
* Copyright (c) 2020, Matthew Olsson <mattco@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/Layout/SVGSVGBox.h>
namespace Web::Layout {
SVGSVGBox::SVGSVGBox(DOM::Document& document, SVG::SVGSVGElement& element, NonnullRefPtr<CSS::StyleProperties> properties)
: SVGGraphicsBox(document, element, properties)
{
}
void SVGSVGBox::before_children_paint(PaintContext& context, PaintPhase phase)
{
if (phase != PaintPhase::Foreground)
return;
if (!context.has_svg_context())
context.set_svg_context(SVGContext(absolute_rect()));
SVGGraphicsBox::before_children_paint(context, phase);
}
void SVGSVGBox::after_children_paint(PaintContext& context, PaintPhase phase)
{
SVGGraphicsBox::after_children_paint(context, phase);
if (phase != PaintPhase::Foreground)
return;
context.clear_svg_context();
}
}