Kaydet (Commit) 07909e00 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

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
üst 35d99caf
......@@ -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
{
......
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment