From 22ac1a5cbbc703290ee0789c2fa76656990b1a4c Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Dec 06 2017 09:08:56 +0000 Subject: Related: tdf#105998 except cut and paste case --- diff --git a/0001-Related-tdf-105998-except-cut-and-paste-as-bitmap-in.patch b/0001-Related-tdf-105998-except-cut-and-paste-as-bitmap-in.patch new file mode 100644 index 0000000..1c7e76e --- /dev/null +++ b/0001-Related-tdf-105998-except-cut-and-paste-as-bitmap-in.patch @@ -0,0 +1,83 @@ +From 15cdcd0346b7aa98d4697edec8aeea9c810efa62 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +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 +Reviewed-by: Caolán McNamara +Tested-by: Caolán McNamara +--- + .../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 + #include ++#include + #include + #include + #include +@@ -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 + diff --git a/libreoffice.spec b/libreoffice.spec index 6948580..d0371a2 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -269,6 +269,7 @@ Patch2: 0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch # not upstreamed Patch3: 0001-gtk3-only-for-3.20.patch Patch4: 0001-fix-includes-in-aarch64-bridge.patch +Patch5: 0001-Related-tdf-105998-except-cut-and-paste-as-bitmap-in.patch %if 0%{?rhel} # not upstreamed