You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by wa...@apache.org on 2012/09/07 07:13:25 UTC
svn commit: r1381875 - in /incubator/ooo/trunk/main:
editeng/source/editeng/impedit3.cxx filter/source/msfilter/svdfppt.cxx
Author: wangzcdl
Date: Fri Sep 7 05:13:25 2012
New Revision: 1381875
URL: http://svn.apache.org/viewvc?rev=1381875&view=rev
Log:
Fix issue #i120344#: The line spacing of the paragraphs is incorrectly if open the .ppt doc
* subversion/main/filter/source/msfilter/svdfppt.cxx
[]if the line space type is SVX_LINE_SPACE_FIX, set it
* subversion/main/editeng/source/editeng/impedit3.cxx
[]reset the text height and max ascent of the line when type is SVX_LINE_SPACE_FIX.
Patch by: Ma Bingbing <ji...@gmail.com>
Suggested by: Wang Zhe <ki...@gmail.com>
Found by: Ma Bingbing <ji...@gmail.com>
Review by: Wang Zhe <ki...@gmail.com>
Modified:
incubator/ooo/trunk/main/editeng/source/editeng/impedit3.cxx
incubator/ooo/trunk/main/filter/source/msfilter/svdfppt.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=1381875&r1=1381874&r2=1381875&view=diff
==============================================================================
--- incubator/ooo/trunk/main/editeng/source/editeng/impedit3.cxx (original)
+++ incubator/ooo/trunk/main/editeng/source/editeng/impedit3.cxx Fri Sep 7 05:13:25 2012
@@ -1343,6 +1343,19 @@ sal_Bool ImpEditEngine::CreateLines( sal
}
}
}
+ else if( rLSItem.GetLineSpaceRule() == SVX_LINE_SPACE_FIX )
+ {
+ sal_uInt16 nTxtHeight = pLine->GetHeight();
+ sal_uInt32 nH = rLSItem.GetLineHeight();
+ if ( nH != nTxtHeight )
+ {
+ long nMaxAscent = pLine->GetMaxAscent() - nTxtHeight + nH;
+ if ( nMaxAscent < 0 )
+ nMaxAscent = 0 ;
+ pLine->SetMaxAscent( (sal_uInt16)nMaxAscent );
+ pLine->SetHeight( (sal_uInt16)nH, nTxtHeight );
+ }
+ }
}
@@ -1688,6 +1701,19 @@ void ImpEditEngine::CreateAndInsertEmpty
}
}
}
+ else if( rLSItem.GetLineSpaceRule() == SVX_LINE_SPACE_FIX )
+ {
+ sal_uInt16 nTxtHeight = pTmpLine->GetHeight();
+ sal_uInt32 nH = rLSItem.GetLineHeight();
+ if ( nH != nTxtHeight )
+ {
+ long nMaxAscent = pTmpLine->GetMaxAscent() - nTxtHeight + nH;
+ if ( nMaxAscent < 0 )
+ nMaxAscent = 0 ;
+ pTmpLine->SetMaxAscent( (sal_uInt16)nMaxAscent );
+ pTmpLine->SetHeight( (sal_uInt16)nH, nTxtHeight );
+ }
+ }
}
if ( !bLineBreak )
Modified: incubator/ooo/trunk/main/filter/source/msfilter/svdfppt.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/filter/source/msfilter/svdfppt.cxx?rev=1381875&r1=1381874&r2=1381875&view=diff
==============================================================================
--- incubator/ooo/trunk/main/filter/source/msfilter/svdfppt.cxx (original)
+++ incubator/ooo/trunk/main/filter/source/msfilter/svdfppt.cxx Fri Sep 7 05:13:25 2012
@@ -6443,7 +6443,10 @@ void PPTParagraphObj::ApplyTo( SfxItemSe
rSet.Put( SdrTextFixedCellHeightItem( sal_True ), SDRATTR_TEXT_USEFIXEDCELLHEIGHT );
SvxLineSpacingItem aItem( 200, EE_PARA_SBL );
if ( nVal2 <= 0 )
+ {
aItem.SetLineHeight( (sal_uInt16)( rManager.ScalePoint( -nVal2 ) / 8 ) );
+ aItem.GetLineSpaceRule() = SVX_LINE_SPACE_FIX;
+ }
else
{
sal_uInt8 nPropLineSpace = (sal_uInt8)nVal2;