diff options
author | Armin Le Grand <alg@apache.org> | 2014-06-03 16:43:56 +0000 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-07-01 13:30:10 +0200 |
commit | c3f70303cf3725cfd64d3b07c0e7e895f8ac629d (patch) | |
tree | 6d0d707dd577d51208b53c1cc0aa39e0e9c16594 /sw | |
parent | c7853b5b5cb71899b6b60fd2175763785b8afb7f (diff) |
Related: #i124638# Corrected paints of Writer Frames...
with DrawingLayer FillAttributes for all systems and AA/nonAA
(cherry picked from commit fcc24448899577e220db70f265bad59f0ffa8428)
Change-Id: I1b3d66061132d1d276080f99e94c421b429de936
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/core/layout/paintfrm.cxx | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index f51680cde904..3678af7e5a55 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -1838,12 +1838,9 @@ bool DrawFillAttributes( if(bUseNew && rFillAttributes.get() && rFillAttributes->isUsed()) { - //UUUU Need to substract a half logical pixel unit from TopLeft to get the correct - // layering for AAed paints - const basegfx::B2DVector aHalfSingleUnit(rOut.GetInverseViewTransformation() * basegfx::B2DVector(0.5, 0.5)); - const basegfx::B2DRange aPaintRange( - rPaintRect.Left() - aHalfSingleUnit.getX(), - rPaintRect.Top() - aHalfSingleUnit.getY(), + basegfx::B2DRange aPaintRange( + rPaintRect.Left(), + rPaintRect.Top(), rPaintRect.Right(), rPaintRect.Bottom()); @@ -1851,6 +1848,14 @@ bool DrawFillAttributes( !basegfx::fTools::equalZero(aPaintRange.getWidth()) && !basegfx::fTools::equalZero(aPaintRange.getHeight())) { + //UUUU need to expand for correct AAed and non-AAed visualization as primitive; move + // bounds to half-(logical)pixel bounds and add a width/height of one pixel that is missing + // from SwRect/Rectangle integer handling + const basegfx::B2DVector aSingleUnit(rOut.GetInverseViewTransformation() * basegfx::B2DVector(0.5, 0.5)); + + aPaintRange.expand(aPaintRange.getMinimum() - (aSingleUnit * 0.5)); + aPaintRange.expand(aPaintRange.getMaximum() + (aSingleUnit * 1.5)); + const basegfx::B2DRange aDefineRange( rOriginalLayoutRect.Left(), rOriginalLayoutRect.Top(), |