diff options
-rw-r--r-- | drawinglayer/source/tools/emfphelperdata.cxx | 10 | ||||
-rw-r--r-- | drawinglayer/source/tools/emfphelperdata.hxx | 1 |
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); |