You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by hd...@apache.org on 2013/01/03 17:04:38 UTC

svn commit: r1428424 - /openoffice/trunk/main/sw/source/core/text/portxt.cxx

Author: hdu
Date: Thu Jan  3 16:04:38 2013
New Revision: 1428424

URL: http://svn.apache.org/viewvc?rev=1428424&view=rev
Log:
#i68503# a SwHolePortion must not be decorated for a consistent visual appearance

Modified:
    openoffice/trunk/main/sw/source/core/text/portxt.cxx

Modified: openoffice/trunk/main/sw/source/core/text/portxt.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/text/portxt.cxx?rev=1428424&r1=1428423&r2=1428424&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/text/portxt.cxx (original)
+++ openoffice/trunk/main/sw/source/core/text/portxt.cxx Thu Jan  3 16:04:38 2013
@@ -49,6 +49,7 @@
 #include <pam.hxx>
 #include <doc.hxx>
 #include <xmloff/odffields.hxx>
+#include <vcl/pdfextoutdevdata.hxx>
 
 #if OSL_DEBUG_LEVEL > 1
 const sal_Char *GetLangName( const MSHORT nLang );
@@ -739,13 +740,34 @@ SwLinePortion *SwHolePortion::Compress()
 
 void SwHolePortion::Paint( const SwTxtPaintInfo &rInf ) const
 {
-    // --> FME 2004-06-24 #i16816# tagged pdf support
-    if( rInf.GetVsh() && rInf.GetVsh()->GetViewOptions()->IsPDFExport() )
-    {
-        const XubString aTxt( ' ' );
-        rInf.DrawText( aTxt, *this, 0, 1, false );
+    if( !rInf.GetOut() )
+        return;
+
+    // #i16816# export stuff only needed for tagged pdf support
+    const vcl::PDFExtOutDevData* pPDFExt = dynamic_cast<const vcl::PDFExtOutDevData*>( rInf.GetOut()->GetExtOutDevData() );
+    if( !pPDFExt || !pPDFExt->GetIsExportTaggedPDF())
+        return;
+
+    // #i68503# the hole must have no decoration for a consistent visual appearance
+    const SwFont* pOrigFont = rInf.GetFont();
+    SwFont* pHoleFont = NULL;
+    SwFontSave* pFontSave = NULL;
+    if( pOrigFont->GetUnderline() != UNDERLINE_NONE
+    ||  pOrigFont->GetOverline() != UNDERLINE_NONE
+    ||  pOrigFont->GetStrikeout() != STRIKEOUT_NONE )
+    {
+        pHoleFont = new SwFont( *pOrigFont );
+        pHoleFont->SetUnderline( UNDERLINE_NONE );
+        pHoleFont->SetOverline( UNDERLINE_NONE );
+        pHoleFont->SetStrikeout( STRIKEOUT_NONE );
+        pFontSave = new SwFontSave( rInf, pHoleFont );
     }
-    // <--
+
+    const XubString aTxt( ' ' );
+    rInf.DrawText( aTxt, *this, 0, 1, false );
+
+    delete pFontSave;
+    delete pHoleFont;
 }
 
 /*************************************************************************