You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by af...@apache.org on 2012/03/02 14:54:08 UTC

svn commit: r1296205 - /incubator/ooo/trunk/main/editeng/source/editeng/impedit3.cxx

Author: af
Date: Fri Mar  2 13:54:08 2012
New Revision: 1296205

URL: http://svn.apache.org/viewvc?rev=1296205&view=rev
Log:
118881: Ignore empty paragraphs after bullets.

Modified:
    incubator/ooo/trunk/main/editeng/source/editeng/impedit3.cxx

Modified: incubator/ooo/trunk/main/editeng/source/editeng/impedit3.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/editeng/source/editeng/impedit3.cxx?rev=1296205&r1=1296204&r2=1296205&view=diff
==============================================================================
--- incubator/ooo/trunk/main/editeng/source/editeng/impedit3.cxx (original)
+++ incubator/ooo/trunk/main/editeng/source/editeng/impedit3.cxx Fri Mar  2 13:54:08 2012
@@ -2930,6 +2930,8 @@ void ImpEditEngine::Paint( OutputDevice*
 				if ( ( !IsVertical() && ( aStartPos.Y() > aClipRec.Top() ) )
 					|| ( IsVertical() && aStartPos.X() < aClipRec.Right() ) )
 				{
+                    bool bPaintBullet (false);
+
                     // Why not just also call when stripping portions? This will give the correct values
                     // and needs no position corrections in OutlinerEditEng::DrawingText which tries to call
                     // PaintBullet correctly; exactly what GetEditEnginePtr()->PaintingFirstLine
@@ -2938,6 +2940,11 @@ void ImpEditEngine::Paint( OutputDevice*
 					{
 						// VERT???
 						GetEditEnginePtr()->PaintingFirstLine( n, aParaStart, aTmpPos.Y(), aOrigin, nOrientation, pOutDev );
+
+                        // Remember whether a bullet was painted.
+                        const SfxBoolItem& rBulletState = static_cast<const SfxBoolItem&>(
+                            pEditEngine->GetParaAttrib(n, EE_PARA_BULLETSTATE));
+                        bPaintBullet = rBulletState.GetValue() ? true : false;
 					}
 
                     // --------------------------------------------------
@@ -2948,8 +2955,14 @@ void ImpEditEngine::Paint( OutputDevice*
 					// #i108052# When stripping a callback for empty paragraphs is needed. This
 					// was somehow lost/removed/killed by making the TextPortions with empty
 					// paragraph to type PORTIONKIND_TAB instead of PORTIONKIND_TEXT. Adding here
-					// since I could not find out who and why this has changed.
-					if(bStripOnly && pLine->GetStartPortion() == pLine->GetEndPortion())
+					// since I could not find out who and why this has
+					// changed.
+                    // #i118881#: Do not include the empty paragraph
+                    // after a bullet.  Otherwise the wrong paragraph
+                    // indices will eventually find their way into
+                    // metafiles and break the association between
+                    // paragraphs and Impress animations.
+					if(!bPaintBullet && bStripOnly && pLine->GetStartPortion() == pLine->GetEndPortion())
 					{
                         const Color aOverlineColor(pOutDev->GetOverlineColor());
                         const Color aTextLineColor(pOutDev->GetTextLineColor());