summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2018-03-23 19:51:37 +0100
committerAndras Timar <andras.timar@collabora.com>2018-04-12 10:54:46 +0200
commit6b7c32ea74f7e0e8aebd0aa51b990c79bd83cb12 (patch)
tree7f0767816e64b39bf597a6138e50f521e7242aba /editeng
parent1c7ff7be4595d488325f3228e425780901971956 (diff)
tdf#116536 Fix bullet position with linespacing > 100
Change-Id: I862246d9c69e754bdd883787fe42c7d61a1a53d3 Reviewed-on: https://gerrit.libreoffice.org/51790 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> (cherry picked from commit 596fd41b9b19e28bab0c84e3821f79cb5d468f24) Reviewed-on: https://gerrit.libreoffice.org/52148 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> (cherry picked from commit e3bcaf133db6c78b0a7baeada6f7692a12e07cb2)
Diffstat (limited to 'editeng')
-rw-r--r--editeng/qa/unit/core-test.cxx2
-rw-r--r--editeng/source/editeng/impedit3.cxx11
2 files changed, 5 insertions, 8 deletions
diff --git a/editeng/qa/unit/core-test.cxx b/editeng/qa/unit/core-test.cxx
index a54434a59635..6e27de1fd649 100644
--- a/editeng/qa/unit/core-test.cxx
+++ b/editeng/qa/unit/core-test.cxx
@@ -223,7 +223,7 @@ void Test::testLineSpacing()
// Check the first line
ParagraphInfos aInfo2 = aEditEngine.GetParagraphInfos(0);
- CPPUNIT_ASSERT_EQUAL(sal_uInt16(311), aInfo2.nFirstLineMaxAscent);
+ CPPUNIT_ASSERT_EQUAL(sal_uInt16(337), aInfo2.nFirstLineMaxAscent);
CPPUNIT_ASSERT_EQUAL(sal_uInt16(382), static_cast<sal_uInt16>(aEditEngine.GetLineHeight(0)));
}
diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index 011525fbab94..c7557a47375e 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -1460,14 +1460,11 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY )
else if ( rLSItem.GetPropLineSpace() && ( rLSItem.GetPropLineSpace() != 100 ) )
{
sal_uInt16 nTxtHeight = pLine->GetHeight();
- sal_Int32 nTxtHeightProp = nTxtHeight * rLSItem.GetPropLineSpace() / 100;
- sal_Int32 nHeightProp = pLine->GetHeight() * rLSItem.GetPropLineSpace() / 100;
+ sal_Int32 nPropTextHeight = nTxtHeight * rLSItem.GetPropLineSpace() / 100;
// The Ascent has to be adjusted for the difference:
- long nDiff = ( pLine->GetHeight() - nTxtHeightProp ) * 4 / 5;
- if ( nDiff > pLine->GetMaxAscent() )
- nDiff = pLine->GetMaxAscent() * 4 / 5;
- pLine->SetMaxAscent( static_cast<sal_uInt16>( pLine->GetMaxAscent() - nDiff ) ); // 80%
- pLine->SetHeight( static_cast<sal_uInt16>( nHeightProp ), nTxtHeightProp );
+ long nDiff = pLine->GetHeight() - nPropTextHeight;
+ pLine->SetMaxAscent( static_cast<sal_uInt16>( pLine->GetMaxAscent() - nDiff ) );
+ pLine->SetHeight( static_cast<sal_uInt16>( nPropTextHeight ), nTxtHeight );
}
}
}