From 4536979e19d6a9a913f677225a122c13a51da1fa Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Mon, 25 Feb 2013 13:22:07 +0100 Subject: fdo#59405 fdo#60638: EMFWriter::ImplWrite: write EMF_PLUS "comments" When editing the Visio OLE object, there is a "preview" file generated, which is apparently an EMF file (strangely initially inserting the Visio object seems to result in a totally unproblematic WMF file). The EMF file apparently has almost its entire content stored in MetaCommentAction of type "EMF_PLUS", which is thrown away when writing the file again. Change-Id: I77a08454da673c1825aaa8421606737e7e8bc82c (cherry picked from commit bf8450cfa2e9e899c716fbddadd7d5485aefe520) Reviewed-on: https://gerrit.libreoffice.org/2396 Tested-by: Fridrich Strba Reviewed-by: Fridrich Strba --- vcl/source/filter/wmf/emfwr.cxx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'vcl/source/filter') diff --git a/vcl/source/filter/wmf/emfwr.cxx b/vcl/source/filter/wmf/emfwr.cxx index c4caf024b47f..80d45734881e 100644 --- a/vcl/source/filter/wmf/emfwr.cxx +++ b/vcl/source/filter/wmf/emfwr.cxx @@ -1388,12 +1388,25 @@ void EMFWriter::ImplWrite( const GDIMetaFile& rMtf ) break; } + case( META_COMMENT_ACTION ): + { + MetaCommentAction const*const pCommentAction( + static_cast(pAction)); + if (pCommentAction->GetComment() == "EMF_PLUS") + { + ImplBeginCommentRecord(WIN_EMR_COMMENT_EMFPLUS); + m_rStm.Write(pCommentAction->GetData(), + pCommentAction->GetDataSize()); + ImplEndCommentRecord(); + } + } + break; + case( META_MASK_ACTION ): case( META_MASKSCALE_ACTION ): case( META_MASKSCALEPART_ACTION ): case( META_WALLPAPER_ACTION ): case( META_TEXTLINE_ACTION ): - case( META_COMMENT_ACTION ): case( META_GRADIENTEX_ACTION ): { // !!! >>> we don't want to support these actions -- cgit v1.2.1