Hi, I found out that bugs
  https://bugs.freedesktop.org/show_bug.cgi?id=34611
  https://bugs.freedesktop.org/show_bug.cgi?id=45376
are caused by a missing call to
   ClrContourCache( pObj );
in
   /sw/source/core/layout/pagechg.cxx:
   void lcl_MoveAllLowerObjs( SwFrm* pFrm, const Point& rOffset )
in the
   else if ( pAnchoredObj->ISA(SwAnchoredDrawObject) )
case (in the if case, pFlyFrm->NotifyDrawObj() calls ClrContourCache).

The attached patch fixes that problem.
>From d1521229e6b06954e05dfa21bb713a0ebbdd43bc Mon Sep 17 00:00:00 2001
From: Andreas Schierl <openoff...@schierla.de>
Date: Mon, 30 Jan 2012 23:34:56 +0100
Subject: [PATCH] ClrContourCache for SwAnchoredDrawObjects

---
 sw/source/core/layout/pagechg.cxx |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/sw/source/core/layout/pagechg.cxx 
b/sw/source/core/layout/pagechg.cxx
index 79d7d1b..4bac372 100644
--- a/sw/source/core/layout/pagechg.cxx
+++ b/sw/source/core/layout/pagechg.cxx
@@ -2035,6 +2035,9 @@ void lcl_MoveAllLowerObjs( SwFrm* pFrm, const Point& 
rOffset )
             const Point aNewAnchorPos( ( aCurrAnchorPos + rOffset ) );
             pAnchoredDrawObj->DrawObj()->SetAnchorPos( aNewAnchorPos );
             pAnchoredDrawObj->SetLastObjRect( 
pAnchoredDrawObj->GetObjRect().SVRect() );
+
+            // clear contour cache
+            ClrContourCache( pAnchoredDrawObj->GetDrawObj() );
         }
         // #i92511#
         // cache for object rectangle inclusive spaces has to be invalidated.
-- 
1.7.4.1

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

Reply via email to