Hi,

MAB: https://bugs.freedesktop.org/show_bug.cgi?id=32181

I've created a (rather idiotic) patch, that fixes that bug, but I have no clue what is going on %-) so it can cause some awful side-effects.

There was commit
http://cgit.freedesktop.org/libreoffice/core/commit/?id=6425c2884d6013a41adbd76728e15832af7a3220
which did besides:

@@ -496,7 +510,13 @@ void SwTxtPainter::DrawTextLine( const SwRect &rPaint, 
SwSaveClip &rClip,
         if( pPor->IsArrowPortion() && GetInfo().OnWin() && !pArrow )
             pArrow = (SwArrowPortion*)pPor;

-        pPor = !bDrawInWindow && GetInfo().X() > nMaxRight ? 0 : pNext;
+        pPor = bDrawInWindow || GetInfo().X() <= nMaxRight ||
+               // --> FME 2004-06-24 #i16816# tagged pdf support
+               ( GetInfo().GetVsh()->GetViewOptions()->IsPDFExport() &&
+                 pNext && pNext->IsHolePortion() ) ?
+               // <--
+               pNext :
+               0;
     }

so on pdfexport we are taking next portion if it is a hole portion regardless of its position. What is this: "a hole portion"?
I am thinking: maybe the proper fix is to negate that condition:

  !pNext->IsHolePortion()

(it solves the problem as well)

Thanks,
Ivan
>From ffe808477ea3302f62c9f2c6fe2db9eaeac637b6 Mon Sep 17 00:00:00 2001
From: Ivan Timofeev <timofeev....@gmail.com>
Date: Fri, 15 Jun 2012 16:02:25 +0400
Subject: [PATCH] fdo#32181: don't exceed margins on pdfexport

(regression from 6425c2884d6013a41adbd76728e15832af7a3220)

Change-Id: Ia54b82e3b781704c84b1e648e980960042cd69ba
---
 sw/source/core/text/itrpaint.cxx |    8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/sw/source/core/text/itrpaint.cxx b/sw/source/core/text/itrpaint.cxx
index dabb7b5..6357429 100644
--- a/sw/source/core/text/itrpaint.cxx
+++ b/sw/source/core/text/itrpaint.cxx
@@ -419,13 +419,7 @@ void SwTxtPainter::DrawTextLine( const SwRect &rPaint, SwSaveClip &rClip,
         if( pPor->IsArrowPortion() && GetInfo().OnWin() && !pArrow )
             pArrow = (SwArrowPortion*)pPor;
 
-        pPor = bDrawInWindow || GetInfo().X() <= nMaxRight ||
-               // #i16816# tagged pdf support
-               ( GetInfo().GetVsh() &&
-                 GetInfo().GetVsh()->GetViewOptions()->IsPDFExport() &&
-                 pNext && pNext->IsHolePortion() ) ?
-               pNext :
-               0;
+        pPor = bDrawInWindow || GetInfo().X() <= nMaxRight ? pNext : 0;
     }
 
     // delete underline font
-- 
1.7.10

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to