summaryrefslogtreecommitdiff
path: root/vcl/source/filter/wmf/winmtf.cxx
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.com>2014-05-18 23:30:39 +0200
committerTomaž Vajngerl <tomaz.vajngerl@collabora.com>2014-07-20 13:52:18 +0200
commit2243edc6e9136f5fbbeb5a876993944ffad64dac (patch)
tree3055680e8759db023cb2af4aa3f0a83846344f32 /vcl/source/filter/wmf/winmtf.cxx
parent668d28b19508ec313e6a771e5c118e742e463a8a (diff)
fdo#72590 scale or map only when EMR_EXTSELECTCLIPRGN action
Conflicts: vcl/source/filter/wmf/enhwmf.cxx vcl/source/filter/wmf/winmtf.cxx Change-Id: Ie42c855e696922b38760876d4090d572deaa689a
Diffstat (limited to 'vcl/source/filter/wmf/winmtf.cxx')
-rw-r--r--vcl/source/filter/wmf/winmtf.cxx28
1 files changed, 13 insertions, 15 deletions
diff --git a/vcl/source/filter/wmf/winmtf.cxx b/vcl/source/filter/wmf/winmtf.cxx
index f21d54a69ba3..f87336c20973 100644
--- a/vcl/source/filter/wmf/winmtf.cxx
+++ b/vcl/source/filter/wmf/winmtf.cxx
@@ -304,14 +304,11 @@ Color WinMtf::ReadColor()
Point WinMtfOutput::ImplScale( const Point& rPt) // Hack to set varying defaults for incompletely defined files.
{
- if (mbIsMapDevSet)
- return rPt; //fdo#73764
-
- if (mbIsMapWinSet)
+ if (!mbIsMapDevSet)
return Point(rPt.X() * UNDOCUMENTED_WIN_RCL_RELATION - mrclFrame.Left(),
rPt.Y() * UNDOCUMENTED_WIN_RCL_RELATION - mrclFrame.Top());
-
- return ImplMap(rPt);
+ else
+ return rPt;
}
@@ -816,17 +813,18 @@ void WinMtfOutput::MoveClipRegion( const Size& rSize )
void WinMtfOutput::SetClipPath( const PolyPolygon& rPolyPolygon, sal_Int32 nClippingMode, sal_Bool bIsMapped )
{
- mbClipNeedsUpdate=true;
- if ( bIsMapped )
- {
- PolyPolygon aPP( rPolyPolygon );
- aClipPath.setClipPath( ImplScale( aPP ), nClippingMode );
- }
- else
+
+ mbClipNeedsUpdate = true;
+ PolyPolygon aPolyPolygon(rPolyPolygon);
+
+ if (!bIsMapped)
{
- PolyPolygon aPP( rPolyPolygon );
- aClipPath.setClipPath( ImplMap( aPP ), nClippingMode );
+ if (!mbIsMapDevSet && (mnMapMode == MM_ISOTROPIC || mnMapMode == MM_ANISOTROPIC))
+ aPolyPolygon = ImplScale(aPolyPolygon);
+ else
+ aPolyPolygon = ImplMap(aPolyPolygon);
}
+ aClipPath.setClipPath(aPolyPolygon, nClippingMode);
}