From 2189e04b47b098cb2f6937fe7c66f734750406d9 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sat, 12 Nov 2016 14:14:55 +0100 Subject: Fit to bounding box: correct transform when mesh has a non-identity gradient transform. (bzr r15243) --- src/sp-mesh-array.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/sp-mesh-array.cpp') diff --git a/src/sp-mesh-array.cpp b/src/sp-mesh-array.cpp index 107359c6c..565551fd4 100644 --- a/src/sp-mesh-array.cpp +++ b/src/sp-mesh-array.cpp @@ -2761,6 +2761,15 @@ void SPMeshNodeArray::transform(Geom::Affine const &m) { // Transform mesh to fill box. Return true if mesh transformed. bool SPMeshNodeArray::fill_box(Geom::OptRect &box) { + // If gradientTransfor is set (as happens when an object is transformed + // with the "optimized" preferences set true), we need to remove it. + if (mg->gradientTransform_set) { + Geom::Affine gt = mg->gradientTransform; + transform( gt ); + mg->gradientTransform_set = false; + mg->gradientTransform.setIdentity(); + } + SPCurve *outline = outline_path(); Geom::OptRect mesh_bbox = outline->get_pathvector().boundsExact(); outline->unref(); -- cgit v1.2.3