summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-03-18 13:54:28 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-03-18 13:58:23 -0400
commit07909e0045d9f94329861fe2e7b3403a5c4befed (patch)
treedb92bd2fe622b215964fc9da87411e0dc4472b3f
parentRelated: #i56998# use locale rules to format percentage (diff)
downloadcore-07909e0045d9f94329861fe2e7b3403a5c4befed.tar.gz
core-07909e0045d9f94329861fe2e7b3403a5c4befed.zip
fdo#75260: Center both primary and secondary lines wrt thier respective axes.
The closed borders connect much better this way. Now all double lines look at least half-way decent. Also, we shouldn't be doing any sort of pixel correction in the common code that gets used both raster and vector drawing modes. In case we need to do some pixel correction, we should do it in the pixel processor code. Change-Id: I78e245c10752d0f4790a9ac664a14ce06571434e
-rw-r--r--drawinglayer/source/primitive2d/borderlineprimitive2d.cxx4
-rw-r--r--sw/source/core/layout/paintfrm.cxx21
2 files changed, 3 insertions, 22 deletions
diff --git a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
index b74061ee25c7..7b9348dc6fec 100644
--- a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
@@ -200,7 +200,7 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive(
getStart(), getEnd(), aVector, getRGBColorLeft(), 0.0);
else
xRetval[0] = makeSolidLinePrimitive(
- aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorLeft(), fLeftWidth, 0.0);
+ aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorLeft(), fLeftWidth, -fLeftWidth/2.0);
// "outside" line
@@ -209,7 +209,7 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive(
getStart(), getEnd(), aVector, getRGBColorRight(), fLeftWidth+mfDistance);
else
xRetval[1] = makeSolidLinePrimitive(
- aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorRight(), fRightWidth, fLeftWidth+mfDistance);
+ aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorRight(), fRightWidth, mfDistance+fRightWidth/2.0);
}
else
{
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 18bfe6fe05a8..85ad6c713002 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -2562,25 +2562,6 @@ void SwTabFrmPainter::PaintLines(OutputDevice& rDev, const SwRect& rRect) const
else
pTmpColor = pHCColor;
- // The line sizes stored in the line style have to be adjusted as
- // well. This will guarantee that lines with the same twip size
- // will have the same pixel size.
- for ( int i = 0; i < 7; ++i )
- {
- sal_uInt16 nPrim = aStyles[ i ].Prim();
- sal_uInt16 nDist = aStyles[ i ].Dist();
- sal_uInt16 nSecn = aStyles[ i ].Secn();
-
- if (nPrim > 0)
- nPrim = (sal_uInt16)( std::max( 1L, nPixelSzH * ( nPrim / nPixelSzH ) ) );
- if (nDist > 0)
- nDist = (sal_uInt16)( std::max( 1L, nPixelSzH * ( nDist / nPixelSzH ) ) );
- if (nSecn > 0)
- nSecn = (sal_uInt16)( std::max( 1L, nPixelSzH * ( nSecn / nPixelSzH ) ) );
-
- aStyles[ i ].Set( nPrim, nDist, nSecn );
- }
-
// The (twip) positions will be adjusted to meet these requirements:
// 1. The y coordinates are located in the middle of the pixel grid
// 2. The x coordinated are located at the beginning of the pixel grid
@@ -2800,7 +2781,7 @@ void calcOffsetForDoubleLine( SwLineEntryMap& rLines )
if (aLine.maAttribute.Secn())
{
// Apply offset only for double lines.
- aLine.mnOffset = static_cast<SwTwips>(aLine.maAttribute.Prim()+aLine.maAttribute.Dist());
+ aLine.mnOffset = static_cast<SwTwips>(aLine.maAttribute.Dist());
aLine.mbOffsetPerp = true;
if (i == 0)