summaryrefslogtreecommitdiff
path: root/svx/source/svdraw/svdxcgv.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/svdraw/svdxcgv.cxx')
-rw-r--r--svx/source/svdraw/svdxcgv.cxx27
1 files changed, 18 insertions, 9 deletions
diff --git a/svx/source/svdraw/svdxcgv.cxx b/svx/source/svdraw/svdxcgv.cxx
index af00499280..4d717d4dfa 100644
--- a/svx/source/svdraw/svdxcgv.cxx
+++ b/svx/source/svdraw/svdxcgv.cxx
@@ -554,7 +554,17 @@ Bitmap SdrExchangeView::GetMarkedObjBitmap( BOOL bNoVDevIfOneBmpMarked ) const
if( !aBmp )
{
const Graphic aGraphic( GetMarkedObjMetaFile( bNoVDevIfOneBmpMarked ) );
- aBmp = aGraphic.GetBitmap();
+
+ // #i102089# support user's settings of AA and LineSnap when the MetaFile gets
+ // rasterconverted to a bitmap
+ const SvtOptionsDrawinglayer aDrawinglayerOpt;
+ const GraphicConversionParameters aParameters(
+ Size(),
+ false,
+ aDrawinglayerOpt.IsAntiAliasing(),
+ aDrawinglayerOpt.IsSnapHorVerLinesToDiscrete());
+
+ aBmp = aGraphic.GetBitmap(aParameters);
}
}
@@ -687,17 +697,16 @@ Graphic SdrExchangeView::GetObjGraphic( const SdrModel* pModel, const SdrObject*
aOut.EnableOutput( FALSE );
aOut.SetMapMode( aMap );
aMtf.Record( &aOut );
-
- // aXOut.SetOffset( Point( -aBoundRect.Left(), -aBoundRect.Top() ) );
- // #i92760# offset set in wrong direction, corrected
- MapMode aOffsetMapMode(aOut.GetMapMode());
- aOffsetMapMode.SetOrigin(Point(-aBoundRect.Left(), -aBoundRect.Top()));
- aOut.SetMapMode(aOffsetMapMode);
-
pObj->SingleObjectPainter( aOut ); // #110094#-17
-
aMtf.Stop();
aMtf.WindStart();
+
+ // #i99268# replace the original offset from using XOutDev's SetOffset
+ // NOT (as tried with #i92760#) with another MapMode which gets recorded
+ // by the Metafile itself (what always leads to problems), but by hardly
+ // moving the result
+ aMtf.Move(-aBoundRect.Left(), -aBoundRect.Top());
+
aMtf.SetPrefMapMode( aMap );
aMtf.SetPrefSize( aBoundRect.GetSize() );