diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2018-03-23 19:51:37 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2018-05-16 15:05:56 +0200 |
commit | 1c7eeb124ce82bb6f90c54ed7eade9d050aae45e (patch) | |
tree | 0c51675209482ed7aa9b981541768ab03a15c8be | |
parent | 4e82bfb26fcb189d18ca6f0e3dbdf79c8b28bf90 (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/52149
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
(cherry picked from commit 4661cd9d17e3f2dc619cb888efde54eb6cf5219a)
-rw-r--r-- | editeng/qa/unit/core-test.cxx | 2 | ||||
-rw-r--r-- | editeng/source/editeng/impedit3.cxx | 11 |
2 files changed, 5 insertions, 8 deletions
diff --git a/editeng/qa/unit/core-test.cxx b/editeng/qa/unit/core-test.cxx index 01d51eb271d3..b362a9db19ca 100644 --- a/editeng/qa/unit/core-test.cxx +++ b/editeng/qa/unit/core-test.cxx @@ -200,7 +200,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 6f9f133a6807..f1b4d231cfa9 100644 --- a/editeng/source/editeng/impedit3.cxx +++ b/editeng/source/editeng/impedit3.cxx @@ -1416,14 +1416,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 ); } } } |