|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
From b5dca3cf9b578984c295eab2ba480363b6a7f375 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
From: Michael Stahl <mstahl@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
Date: Wed, 29 Oct 2014 23:50:21 +0100
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
Subject: [PATCH 1/2] fdo#79602: sw: fix text formatting of proportional line
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
space < 100%
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
SwTxtFormatter::CalcRealHeight(): Apply the special treatment of < 100%
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
line space shrinking the Height() of the line only to the first line
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
in a paragraph; the subsequent ones are shrunk again (to the square of
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
the desired proportion) 30 lines later.
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
Also set the Ascent of the line, as the wrong base-line causes the lower
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
part of the line to be clipped.
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
(regression from 42532d42bfcdb12df86376cda009e8e315a82153)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
(cherry picked from commit 4e223fab04279c3583689e69fa1342966e81de36)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
Conflicts:
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
sw/source/core/text/itrform2.cxx
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
Reviewed-on: https://gerrit.libreoffice.org/12156
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
(cherry picked from commit 7ca9c060155b79a037861a972843a70b8a518c4f)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
Conflicts:
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
sw/source/core/text/itrform2.cxx
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
Change-Id: I0424396263293deaa318c80eedc2237cdb01b22b
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
---
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
sw/source/core/text/itrform2.cxx | 18 +++++++++++++-----
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
1 file changed, 13 insertions(+), 5 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
index 9cb57bc..459d6c3 100644
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
--- a/sw/source/core/text/itrform2.cxx
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+++ b/sw/source/core/text/itrform2.cxx
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
@@ -1818,24 +1818,30 @@ void SwTxtFormatter::CalcRealHeight( sal_Bool bNewLine )
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
switch( pSpace->GetLineSpaceRule() )
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
{
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
case SVX_LINE_SPACE_AUTO:
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
- if (pSpace->GetInterLineSpaceRule()==SVX_INTER_LINE_SPACE_PROP) {
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+ // shrink first line of paragraph too on spacing < 100%
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+ if (IsParaLine() &&
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+ pSpace->GetInterLineSpaceRule() == SVX_INTER_LINE_SPACE_PROP)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
long nTmp = pSpace->GetPropLineSpace();
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+ // Word will render < 50% too but it's just not readable
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+ if( nTmp < 50 )
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+ nTmp = nTmp ? 50 : 100;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
if (nTmp<100) { // code adaped from fixed line height
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
nTmp *= nLineHeight;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
nTmp /= 100;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
if( !nTmp )
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
++nTmp;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
nLineHeight = (KSHORT)nTmp;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
-/*
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
- //@TODO figure out how WW maps ascent and descent
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
- //in case of prop line spacing <100%
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
KSHORT nAsc = ( 4 * nLineHeight ) / 5; // 80%
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+#if 0
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+ // could do clipping here (like Word does)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+ // but at 0.5 its unreadable either way...
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
if( nAsc < pCurr->GetAscent() ||
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
nLineHeight - nAsc < pCurr->Height() -
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
pCurr->GetAscent() )
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
pCurr->SetClipping( sal_True );
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+#endif
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
pCurr->SetAscent( nAsc );
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
-*/
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
pCurr->Height( nLineHeight );
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
pInf->GetParaPortion()->SetFixLineHeight();
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
}
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
@@ -1861,6 +1867,8 @@ pCurr->GetAscent() )
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
default: OSL_FAIL( ": unknown LineSpaceRule" );
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
}
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+ // Note: for the _first_ line the line spacing of the previous
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
+ // paragraph is applied in SwFlowFrm::CalcUpperSpace()
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
if( !IsParaLine() )
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
switch( pSpace->GetInterLineSpaceRule() )
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
{
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
--
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
1.9.3
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
a944f99 |
|