summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drawinglayer/source/tools/emfphelperdata.cxx10
-rw-r--r--drawinglayer/source/tools/emfphelperdata.hxx1
2 files changed, 10 insertions, 1 deletions
diff --git a/drawinglayer/source/tools/emfphelperdata.cxx b/drawinglayer/source/tools/emfphelperdata.cxx
index 3c9d10e62fd8..a7c455cfc1aa 100644
--- a/drawinglayer/source/tools/emfphelperdata.cxx
+++ b/drawinglayer/source/tools/emfphelperdata.cxx
@@ -745,7 +745,8 @@ namespace emfplushelper
mMFlags(0),
mMStream(),
mrTargetHolders(rTargetHolders),
- mrPropertyHolders(rPropertyHolders)
+ mrPropertyHolders(rPropertyHolders),
+ bIsGetDCProcessing(false)
{
rMS.ReadInt32(mnFrameLeft).ReadInt32(mnFrameTop).ReadInt32(mnFrameRight).ReadInt32(mnFrameBottom);
SAL_INFO("drawinglayer", "EMF+ picture frame: " << mnFrameLeft << "," << mnFrameTop << " - " << mnFrameRight << "," << mnFrameBottom);
@@ -838,6 +839,12 @@ namespace emfplushelper
SAL_INFO("drawinglayer", "EMF+ record size: " << size << " type: " << emfTypeToName(type) << " flags: " << flags << " data size: " << dataSize);
+ if (bIsGetDCProcessing)
+ {
+ SAL_INFO("drawinglayer", "EMF+ Resets the current clipping region for the world space to infinity.");
+ wmfemfhelper::HandleNewClipRegion(::basegfx::B2DPolyPolygon(), mrTargetHolders, mrPropertyHolders);
+ bIsGetDCProcessing = false;
+ }
if (type == EmfPlusRecordTypeObject && ((mbMultipart && (flags & 0x7fff) == (mMFlags & 0x7fff)) || (flags & 0x8000)))
{
if (!mbMultipart)
@@ -912,6 +919,7 @@ namespace emfplushelper
}
case EmfPlusRecordTypeGetDC:
{
+ bIsGetDCProcessing = true;
SAL_INFO("drawinglayer", "EMF+ GetDC");
SAL_INFO("drawinglayer", "EMF+\talready used in svtools wmf/emf filter parser");
break;
diff --git a/drawinglayer/source/tools/emfphelperdata.hxx b/drawinglayer/source/tools/emfphelperdata.hxx
index e5402d1fe267..281a5f7ebbba 100644
--- a/drawinglayer/source/tools/emfphelperdata.hxx
+++ b/drawinglayer/source/tools/emfphelperdata.hxx
@@ -171,6 +171,7 @@ namespace emfplushelper
/// data holders
wmfemfhelper::TargetHolders& mrTargetHolders;
wmfemfhelper::PropertyHolders& mrPropertyHolders;
+ bool bIsGetDCProcessing;
// readers
void processObjectRecord(SvMemoryStream& rObjectStream, sal_uInt16 flags, sal_uInt32 dataSize, bool bUseWholeStream = false);