Prechádzať zdrojové kódy

LibWeb: Remove per path clipping for SVGGeometryPaintable

Somewhere the path bounding box in the layout and the actual draw path
are getting slightly mismatched. This results in partly clipped bits of
SVGs. The paths are already clipped to the containing SVG, and the size
of the path in the layout is computed from the bounding box, so it is
probably safe just to remove this clipping for now.
MacDue 2 rokov pred
rodič
commit
47fc91ed43

+ 1 - 3
Userland/Libraries/LibWeb/Painting/SVGGeometryPaintable.cpp

@@ -65,13 +65,11 @@ void SVGGeometryPaintable::paint(PaintContext& context, PaintPhase phase) const
     auto const* svg_element = geometry_element.first_ancestor_of_type<SVG::SVGSVGElement>();
     auto maybe_view_box = svg_element->view_box();
 
-    context.painter().add_clip_rect(context.enclosing_device_rect(absolute_rect()).to_type<int>());
-    auto css_scale = context.device_pixels_per_css_pixel();
-
     auto transform = layout_box().layout_transform();
     if (!transform.has_value())
         return;
 
+    auto css_scale = context.device_pixels_per_css_pixel();
     auto paint_transform = Gfx::AffineTransform {}.scale(css_scale, css_scale).multiply(*transform);
     auto const& original_path = const_cast<SVG::SVGGeometryElement&>(geometry_element).get_path();
     Gfx::Path path = original_path.copy_transformed(paint_transform);