drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx | 16 ++++++++----- drawinglayer/source/processor2d/vclprocessor2d.cxx | 2 - 2 files changed, 12 insertions(+), 6 deletions(-)
New commits: commit f8ca5b1b95b92e9410df6037781680dcd35ff963 Author: Michael Meeks <michael.me...@suse.com> Date: Mon Mar 25 21:33:00 2013 +0000 fdo#61789 - move metafile line width scaling somewhere more sensible. (cherry picked from commit 432b6ab482d6fcef05514ab17e4bc762ee552139) Signed-off-by: Michael Stahl <mst...@redhat.com> diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx index f9d583d..9663384 100644 --- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx @@ -444,6 +444,15 @@ namespace drawinglayer // pre-fill fLineWidth fLineWidth = pLineAttribute->getWidth(); + // #i113922# the LineWidth is duplicated in the MetaPolylineAction, + // and also inside the SvtGraphicStroke and needs transforming into + // the same space as its co-ordinates here cf. fdo#61789 + // This is a partial fix. When a object transformation is used which + // e.g. contains a scaleX != scaleY, an unproportional scaling will happen. + const basegfx::B2DVector aDiscreteUnit(maCurrentTransformation * + basegfx::B2DVector(pLineAttribute->getWidth(), 0.0 )); + fLineWidth = aDiscreteUnit.getLength(); + // pre-fill fMiterLength fMiterLength = fLineWidth; @@ -1233,11 +1242,8 @@ namespace drawinglayer mpOutputDevice->SetFillColor(); aHairLinePolyPolygon.transform(maCurrentTransformation); - // #i113922# LineWidth needs to be transformed, too - const basegfx::B2DVector aDiscreteUnit(maCurrentTransformation * basegfx::B2DVector(rLine.getWidth(), 0.0)); - const double fDiscreteLineWidth(aDiscreteUnit.getLength()); - - LineInfo aLineInfo(LINE_SOLID, basegfx::fround(fDiscreteLineWidth)); + // use the transformed line width from the stroke info. + LineInfo aLineInfo(LINE_SOLID, basegfx::fround(pSvtGraphicStroke->getStrokeWidth())); aLineInfo.SetLineJoin(rLine.getLineJoin()); aLineInfo.SetLineCap(rLine.getLineCap()); diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx index adde6aa..1a50490 100644 --- a/drawinglayer/source/processor2d/vclprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx @@ -1350,7 +1350,7 @@ namespace drawinglayer { // #i101491# If the polygon complexity uses more than a given amount, do // use OuputDevice::DrawPolyLine directly; this will avoid buffering all - // decompositions in primtives (memory) and fallback to old line painting + // decompositions in primitives (memory) and fallback to old line painting // for very complex polygons, too for(sal_uInt32 a(0); a < nCount; a++) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits