summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2014-01-21 11:16:20 +0100
committerNorbert Thiebaud <nthiebaud@gmail.com>2014-01-30 15:07:21 +0000
commit28c613edb7bde90c49c61c56c9bb32fb312070e9 (patch)
tree2ad9d85b50d1211278a3853847eb86bf28b0d38c
parent718524619bf8cc96325aed87b72735741fe93912 (diff)
fdo#68959: sw: fix painting of tab fill characters in small caps text
The member SwDrawTextInfo::pPos was changed from a pointer to some externally provided Point to a real object; unfortunately there were some functions which hold backups of the current pPos as a reference/pointer and then restore it, and the restore is a no-op now. So use real Points as backups. (regression from f22006dc6ac34a35a060e15466cf6b2d2058617d) Change-Id: I8470143ec494cb194a88ddcbd12d96867974278f (cherry picked from commit c445d40da8daa2f6ec0ae9930a06f50ab80cc85d) Reviewed-on: https://gerrit.libreoffice.org/7568 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 7cdf5a6995a017e295e9b1099abc6dcb1987ae9e) Reviewed-on: https://gerrit.libreoffice.org/7576 Reviewed-by: Eike Rathke <erack@redhat.com> Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
-rw-r--r--sw/source/core/text/txtfly.cxx6
-rw-r--r--sw/source/core/txtnode/fntcap.cxx4
-rw-r--r--sw/source/core/txtnode/swfont.cxx8
3 files changed, 9 insertions, 9 deletions
diff --git a/sw/source/core/text/txtfly.cxx b/sw/source/core/text/txtfly.cxx
index 54635d759442..3a140b69ac0d 100644
--- a/sw/source/core/text/txtfly.cxx
+++ b/sw/source/core/text/txtfly.cxx
@@ -568,7 +568,7 @@ sal_Bool SwTxtFly::DrawTextOpaque( SwDrawTextInfo &rInf )
}
Point aPos( rInf.GetPos().X(), rInf.GetPos().Y() + rInf.GetAscent() );
- const Point &rOld = rInf.GetPos();
+ const Point aOldPos(rInf.GetPos());
rInf.SetPos( aPos );
if( !bOpaque )
@@ -577,7 +577,7 @@ sal_Bool SwTxtFly::DrawTextOpaque( SwDrawTextInfo &rInf )
rInf.GetFont()->_DrawStretchText( rInf );
else
rInf.GetFont()->_DrawText( rInf );
- rInf.SetPos( rOld );
+ rInf.SetPos(aOldPos);
return sal_False;
}
else if( !aRegion.empty() )
@@ -595,7 +595,7 @@ sal_Bool SwTxtFly::DrawTextOpaque( SwDrawTextInfo &rInf )
rInf.GetFont()->_DrawText( rInf );
}
}
- rInf.SetPos( rOld );
+ rInf.SetPos(aOldPos);
return sal_True;
}
diff --git a/sw/source/core/txtnode/fntcap.cxx b/sw/source/core/txtnode/fntcap.cxx
index 9735b2c95663..3f827f21f0cf 100644
--- a/sw/source/core/txtnode/fntcap.cxx
+++ b/sw/source/core/txtnode/fntcap.cxx
@@ -536,9 +536,9 @@ void SwSubFont::DrawStretchCapital( SwDrawTextInfo &rInf )
if( rInf.GetLen() == STRING_LEN )
rInf.SetLen( rInf.GetText().getLength() );
- const Point& rOldPos = rInf.GetPos();
+ const Point aOldPos = rInf.GetPos();
const sal_uInt16 nCapWidth = (sal_uInt16)( GetCapitalSize( rInf ).Width() );
- rInf.SetPos( rOldPos );
+ rInf.SetPos(aOldPos);
rInf.SetDrawSpace( GetUnderline() != UNDERLINE_NONE ||
GetOverline() != UNDERLINE_NONE ||
diff --git a/sw/source/core/txtnode/swfont.cxx b/sw/source/core/txtnode/swfont.cxx
index 977b6d224ae3..8a4ed6d20d42 100644
--- a/sw/source/core/txtnode/swfont.cxx
+++ b/sw/source/core/txtnode/swfont.cxx
@@ -849,12 +849,12 @@ void SwSubFont::_DrawText( SwDrawTextInfo &rInf, const sal_Bool bGrey )
SwDigitModeModifier aDigitModeModifier( rInf.GetOut(), rInf.GetFont()->GetLanguage() );
+ const Point aOldPos(rInf.GetPos());
Point aPos( rInf.GetPos() );
if( GetEscapement() )
CalcEsc( rInf, aPos );
- const Point &rOld = rInf.GetPos();
rInf.SetPos( aPos );
rInf.SetKern( CheckKerning() + rInf.GetSperren() / SPACING_PRECISION_FACTOR );
@@ -955,7 +955,7 @@ static sal_Char const sDoubleSpace[] = " ";
rInf.SetLen( nOldLen );
}
- rInf.SetPos( rOld );
+ rInf.SetPos(aOldPos);
}
void SwSubFont::_DrawStretchText( SwDrawTextInfo &rInf )
@@ -980,13 +980,13 @@ void SwSubFont::_DrawStretchText( SwDrawTextInfo &rInf )
rInf.ApplyAutoColor();
+ const Point aOldPos(rInf.GetPos());
Point aPos( rInf.GetPos() );
if( GetEscapement() )
CalcEsc( rInf, aPos );
rInf.SetKern( CheckKerning() + rInf.GetSperren() / SPACING_PRECISION_FACTOR );
- const Point &rOld = rInf.GetPos();
rInf.SetPos( aPos );
if( IsCapital() )
@@ -1038,7 +1038,7 @@ static sal_Char const sDoubleSpace[] = " ";
rInf.SetLen( nOldLen );
}
- rInf.SetPos( rOld );
+ rInf.SetPos(aOldPos);
}
/*************************************************************************