summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-04-17 22:30:25 +0200
committerMiklos Vajna <vmiklos@suse.cz>2012-04-18 11:37:03 +0200
commitfe2a1f6bcb72b17d050355377b68e986f17cf1ff (patch)
tree2e0ba1e1959deac212e8b063c363de5b736574b7
parentsw: create horizontal border lines with start left and end right (diff)
downloadcore-fe2a1f6bcb72b17d050355377b68e986f17cf1ff.tar.gz
core-fe2a1f6bcb72b17d050355377b68e986f17cf1ff.zip
fdo#38635: sw: fix border corner gaps:
The start and end points of the vertical and adjacent horizontal borders were apart by 1.5 to 3 twips, leading to small visible gaps in the corners. This is fixed by using lcl_AlignWidth/lcl_AlignHeight on the border widths, and by always computing the start/end positions from the outer edge, which makes the horizontal and vertical start/end points match. (regression from 0f0896c26fb260d1bbf31d7a886df3f61837f0f2) (cherry picked from commit b08e9f3023e9ea1ca0926334becac939ca8fdfac) Signed-off-by: Miklos Vajna <vmiklos@suse.cz>
-rwxr-xr-xsw/source/core/layout/paintfrm.cxx20
1 files changed, 16 insertions, 4 deletions
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 0a451b86d9a9..69e32ff3978b 100755
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -4483,8 +4483,13 @@ void lcl_PaintLeftRightLine( const sal_Bool _bLeft,
nExtentOE = lcl_GetExtent( pBottomBorder, NULL );
}
- basegfx::B2DPoint aStart( aRect.Left() + aRect.Width() / 2.0, aRect.Top() + lcl_GetLineWidth( pTopBorder ) / 2.0 );
- basegfx::B2DPoint aEnd( aRect.Left() + aRect.Width() / 2.0, aRect.Bottom() - lcl_GetLineWidth( pBottomBorder ) / 2.0 );
+ double const fStartX( (_bLeft) // fdo#38635: always from outer edge
+ ? aRect.Left() + (aRect.Width() / 2.0)
+ : aRect.Right() - (aRect.Width() / 2.0));
+ basegfx::B2DPoint const aStart(fStartX,
+ aRect.Top() + lcl_AlignHeight(lcl_GetLineWidth(pTopBorder))/2.0 );
+ basegfx::B2DPoint const aEnd(fStartX,
+ aRect.Bottom() - lcl_AlignHeight(lcl_GetLineWidth(pBottomBorder))/2.0 );
double nLeftWidth = !_bLeft ? pLeftRightBorder->GetOutWidth() : pLeftRightBorder->GetInWidth( );
double nRightWidth = !_bLeft ? pLeftRightBorder->GetInWidth() : pLeftRightBorder->GetOutWidth( );
@@ -4558,8 +4563,15 @@ void lcl_PaintTopBottomLine( const sal_Bool _bTop,
nExtentOE = lcl_GetExtent( NULL, pRightBorder );
}
- basegfx::B2DPoint aStart( aRect.Left() + lcl_GetLineWidth( pLeftBorder ) / 2.0, aRect.Top() + aRect.Height() / 2.0 );
- basegfx::B2DPoint aEnd( aRect.Right() - lcl_GetLineWidth( pRightBorder ) / 2.0, aRect.Top() + aRect.Height() / 2.0 );
+ double const fStartY( (_bTop) // fdo#38635: always from outer edge
+ ? aRect.Top() + (aRect.Height() / 2.0)
+ : aRect.Bottom() - (aRect.Height() / 2.0));
+ basegfx::B2DPoint const aStart(
+ aRect.Left() + lcl_AlignWidth(lcl_GetLineWidth(pLeftBorder))/2.0,
+ fStartY );
+ basegfx::B2DPoint const aEnd(
+ aRect.Right() - lcl_AlignWidth(lcl_GetLineWidth(pRightBorder))/2.0,
+ fStartY );
double nLeftWidth = !_bTop ? pTopBottomBorder->GetOutWidth() : pTopBottomBorder->GetInWidth( );
double nRightWidth = !_bTop ? pTopBottomBorder->GetInWidth() : pTopBottomBorder->GetOutWidth( );