|
@@ -5,6 +5,7 @@
|
|
*/
|
|
*/
|
|
|
|
|
|
#include <LibWeb/Layout/ImageBox.h>
|
|
#include <LibWeb/Layout/ImageBox.h>
|
|
|
|
+#include <LibWeb/Layout/SVGSVGBox.h>
|
|
#include <LibWeb/Painting/SVGPaintable.h>
|
|
#include <LibWeb/Painting/SVGPaintable.h>
|
|
|
|
|
|
namespace Web::Painting {
|
|
namespace Web::Painting {
|
|
@@ -35,4 +36,15 @@ void SVGPaintable::after_children_paint(PaintContext& context, PaintPhase phase)
|
|
context.svg_context().restore();
|
|
context.svg_context().restore();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+Gfx::FloatRect SVGPaintable::compute_absolute_rect() const
|
|
|
|
+{
|
|
|
|
+ if (auto* svg_svg_box = layout_box().first_ancestor_of_type<Layout::SVGSVGBox>()) {
|
|
|
|
+ Gfx::FloatRect rect { effective_offset(), content_size() };
|
|
|
|
+ for (Layout::Box const* ancestor = svg_svg_box; ancestor && ancestor->paintable(); ancestor = ancestor->paintable()->containing_block())
|
|
|
|
+ rect.translate_by(ancestor->paint_box()->effective_offset());
|
|
|
|
+ return rect;
|
|
|
|
+ }
|
|
|
|
+ return PaintableBox::compute_absolute_rect();
|
|
|
|
+}
|
|
|
|
+
|
|
}
|
|
}
|