summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-04-18 22:15:19 +0200
committerMichael Stahl <mstahl@redhat.com>2012-04-18 22:16:20 +0200
commit49bd0e4e6bb0ed0671de72d84700ddcc49828f69 (patch)
treef42cef2d906c3622afa48ee9975c8ee4016ca5bb
parent8adec08d56a9ad46d3550e43b115e916c4cf783f (diff)
fdo#48647: drawinglayer: fix double hairline borders:
Clipping the border polygon to the region defined by the Extends is sufficient to create a nice looking 1 twip double border in Writer. (regression from 0f0896c26fb260d1bbf31d7a886df3f61837f0f2)
-rw-r--r--drawinglayer/source/primitive2d/borderlineprimitive2d.cxx22
1 files changed, 16 insertions, 6 deletions
diff --git a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
index 1834d361d637..86f58d653c49 100644
--- a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
@@ -114,9 +114,14 @@ namespace drawinglayer
aLeft.append(aTmpStart);
aLeft.append(aTmpEnd);
- xRetval[nInsert++] = Primitive2DReference(new PolygonHairlinePrimitive2D(
- aLeft,
- getRGBColorLeft()));
+ basegfx::B2DPolyPolygon const aClipped =
+ basegfx::tools::clipPolygonOnPolyPolygon(
+ aLeft, aClipRegion, true, true);
+
+ xRetval[nInsert++] =
+ new PolyPolygonHairlinePrimitive2D(
+ aClipped,
+ getRGBColorLeft());
aGap.append( getStart() - getExtendLeftStart() * aVector );
aGap.append( getEnd() + getExtendLeftEnd() * aVector );
@@ -159,9 +164,14 @@ namespace drawinglayer
aRight.append(aTmpStart);
aRight.append(aTmpEnd);
- xRetval[nInsert++] = Primitive2DReference(new PolygonHairlinePrimitive2D(
- aRight,
- getRGBColorRight()));
+ basegfx::B2DPolyPolygon const aClipped =
+ basegfx::tools::clipPolygonOnPolyPolygon(
+ aRight, aClipRegion, true, true);
+
+ xRetval[nInsert++] =
+ new PolyPolygonHairlinePrimitive2D(
+ aClipped,
+ getRGBColorRight());
aGap.append( getStart() - getExtendRightStart() * aVector );
aGap.append( getEnd() + getExtendRightEnd() * aVector );