parent
8bdfc24b49
commit
22ac1a5cbb
@ -0,0 +1,83 @@
|
|||||||
|
From 15cdcd0346b7aa98d4697edec8aeea9c810efa62 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||||
|
Date: Tue, 5 Dec 2017 17:13:28 +0000
|
||||||
|
Subject: [PATCH] Related: tdf#105998 except cut and paste as bitmap instead of
|
||||||
|
export
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Take a drawing rectangle in draw and cut and paste as bitmap to writer. The
|
||||||
|
hairline border along the very right/bottom edge of the bitmap appear missing.
|
||||||
|
|
||||||
|
fallback to default handlers which can distort the hairline to be visible
|
||||||
|
|
||||||
|
Change-Id: Iedb580f65879628839c83e41092745ae7c11267c
|
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/45902
|
||||||
|
Tested-by: Jenkins <ci@libreoffice.org>
|
||||||
|
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
||||||
|
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
||||||
|
---
|
||||||
|
.../source/processor2d/vclpixelprocessor2d.cxx | 25 +++++++++++++++++-----
|
||||||
|
1 file changed, 20 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
|
||||||
|
index 9c21c83ee..5c5c0bb 100644
|
||||||
|
--- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
|
||||||
|
+++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
|
||||||
|
@@ -41,6 +41,7 @@
|
||||||
|
#include "helperwrongspellrenderer.hxx"
|
||||||
|
#include <drawinglayer/primitive2d/fillhatchprimitive2d.hxx>
|
||||||
|
#include <basegfx/polygon/b2dpolygontools.hxx>
|
||||||
|
+#include <basegfx/polygon/b2dpolypolygontools.hxx>
|
||||||
|
#include <vcl/hatch.hxx>
|
||||||
|
#include <tools/diagnose_ex.h>
|
||||||
|
#include <com/sun/star/awt/PosSize.hpp>
|
||||||
|
@@ -139,7 +140,7 @@ namespace drawinglayer
|
||||||
|
}
|
||||||
|
|
||||||
|
//Resolves: tdf#105998 if we are a hairline along the very right/bottom edge
|
||||||
|
- //of the canvas then destroy the polygon inwards one pixel right/bottom so that
|
||||||
|
+ //of the canvas then distort the polygon inwards one pixel right/bottom so that
|
||||||
|
//the hairline falls inside the paintable area and becomes visible
|
||||||
|
Size aSize = mpOutputDevice->GetOutputSize();
|
||||||
|
basegfx::B2DRange aRange = aLocalPolygon.getB2DRange();
|
||||||
|
@@ -210,10 +211,6 @@ namespace drawinglayer
|
||||||
|
maBColorModifierStack.getModifiedColor(
|
||||||
|
rSource.getLineAttribute().getColor()));
|
||||||
|
|
||||||
|
- mpOutputDevice->SetFillColor();
|
||||||
|
- mpOutputDevice->SetLineColor(Color(aLineColor));
|
||||||
|
- aHairLinePolyPolygon.transform(maCurrentTransformation);
|
||||||
|
-
|
||||||
|
double fLineWidth(rSource.getLineAttribute().getWidth());
|
||||||
|
|
||||||
|
if(basegfx::fTools::more(fLineWidth, 0.0))
|
||||||
|
@@ -234,6 +231,24 @@ namespace drawinglayer
|
||||||
|
fLineWidth = 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ //Related: tdf#105998 cut and paste as bitmap of shape from draw to
|
||||||
|
+ //writer. If we are a hairline along the very right/bottom edge of
|
||||||
|
+ //the canvas then fallback to defaults which can distort the
|
||||||
|
+ //hairline inside the paintable area
|
||||||
|
+ if (fLineWidth == 0.0)
|
||||||
|
+ {
|
||||||
|
+ Size aSize = mpOutputDevice->GetOutputSize();
|
||||||
|
+ basegfx::B2DRange aRange = aHairLinePolyPolygon.getB2DRange();
|
||||||
|
+ basegfx::B2DRange aOutputRange = aRange;
|
||||||
|
+ aOutputRange.transform(maCurrentTransformation);
|
||||||
|
+ if (std::round(aOutputRange.getMaxX()) == aSize.Width() || std::round(aOutputRange.getMaxY()) == aSize.Height())
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ mpOutputDevice->SetFillColor();
|
||||||
|
+ mpOutputDevice->SetLineColor(Color(aLineColor));
|
||||||
|
+ aHairLinePolyPolygon.transform(maCurrentTransformation);
|
||||||
|
+
|
||||||
|
bool bHasPoints(false);
|
||||||
|
bool bTryWorked(false);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.9.5
|
||||||
|
|
Loading…
Reference in new issue