diff options
Diffstat (limited to 'svx/source/svdraw/svdopath.cxx')
-rw-r--r-- | svx/source/svdraw/svdopath.cxx | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx index 05dcd4202d98..9bd0287b4bd4 100644 --- a/svx/source/svdraw/svdopath.cxx +++ b/svx/source/svdraw/svdopath.cxx @@ -2,9 +2,9 @@ * * $RCSfile: svdopath.cxx,v $ * - * $Revision: 1.20 $ + * $Revision: 1.21 $ * - * last change: $Author: aw $ $Date: 2002-10-22 13:41:25 $ + * last change: $Author: thb $ $Date: 2002-10-31 12:52:39 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -331,12 +331,20 @@ FASTBOOL SdrPathObj::Paint(ExtOutputDevice& rXOut, const SdrPaintInfoRec& rInfoR aEmptySet.Put(XLineStyleItem(XLINE_NONE)); aEmptySet.Put(XFillStyleItem(XFILL_NONE)); + // #103692# prepare ItemSet for shadow fill attributes + SfxItemSet aShadowSet(rSet); + // prepare line geometry ::std::auto_ptr< SdrLineGeometry > pLineGeometry( ImpPrepareLineGeometry(rXOut, rSet, bIsLineDraft) ); // Shadows - if (!bHideContour && ImpSetShadowAttributes(rXOut,!IsClosed() || bIsFillDraft)) + if (!bHideContour && ImpSetShadowAttributes(rSet, aShadowSet)) { + if( !IsClosed() || bIsFillDraft ) + rXOut.SetFillAttr(aEmptySet); + else + rXOut.SetFillAttr(aShadowSet); + UINT32 nXDist=((SdrShadowXDistItem&)(rSet.Get(SDRATTR_SHADOWXDIST))).GetValue(); UINT32 nYDist=((SdrShadowYDistItem&)(rSet.Get(SDRATTR_SHADOWYDIST))).GetValue(); XPolyPolygon aTmpXPoly(aPathPolygon); @@ -352,7 +360,7 @@ FASTBOOL SdrPathObj::Paint(ExtOutputDevice& rXOut, const SdrPaintInfoRec& rInfoR } } else { // #100127# Output original geometry for metafiles - ImpGraphicFill aFill( *this, rXOut ); + ImpGraphicFill aFill( *this, rXOut, aShadowSet, true ); rXOut.DrawXPolyPolygon(aTmpXPoly); } @@ -369,25 +377,14 @@ FASTBOOL SdrPathObj::Paint(ExtOutputDevice& rXOut, const SdrPaintInfoRec& rInfoR // avoid line drawing in XOut rXOut.SetLineAttr(aEmptySet); - if(bIsFillDraft) - { - // perepare ItemSet to avoid XOut filling - rXOut.SetFillAttr(aEmptySet); - } - else - { - if(IsClosed() || bHideContour) - { - rXOut.SetFillAttr(rSet); - } - } + rXOut.SetFillAttr( bIsFillDraft || !IsClosed() ? aEmptySet : rSet ); if( !bHideContour ) { if( IsClosed() ) { // #100127# Output original geometry for metafiles - ImpGraphicFill aFill( *this, rXOut ); + ImpGraphicFill aFill( *this, rXOut, bIsFillDraft || !IsClosed() ? aEmptySet : rSet ); rXOut.DrawXPolyPolygon(aPathPolygon); } |