diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.com> | 2015-10-12 23:28:53 +0200 |
---|---|---|
committer | Tomaž Vajngerl <tomaz.vajngerl@collabora.com> | 2015-10-12 23:40:15 +0200 |
commit | 5e1714fd7fcb45fa5f1220d892dba597da40b500 (patch) | |
tree | 56220fb2989d5a9120af226c41b20660d63785d5 /sw/source | |
parent | 1db251e1a191844eb99462a67e9acf4f4b67233f (diff) |
tdf#77014 fix input field breaking of words at new line
SwTextInputFieldPortion::Format has previously tried to erase the
input field special chars, which caused the words not breaking as
expected or in the same way as normal text. It appears that it is
actually not necessary to do this at all so just calling the super
class method SwTextPortion::Format does the job and fixes the
problem. After testing I could not find anything that is obviously
wrong.
Change-Id: Ie763f55ad55863dd224425dc481b7100deb639fa
Diffstat (limited to 'sw/source')
-rw-r--r-- | sw/source/core/text/portxt.cxx | 53 |
1 files changed, 2 insertions, 51 deletions
diff --git a/sw/source/core/text/portxt.cxx b/sw/source/core/text/portxt.cxx index d5cca569ae2b..e3a6388e15fc 100644 --- a/sw/source/core/text/portxt.cxx +++ b/sw/source/core/text/portxt.cxx @@ -655,58 +655,9 @@ SwTextInputFieldPortion::SwTextInputFieldPortion() SetWhichPor( POR_INPUTFLD ); } -bool SwTextInputFieldPortion::Format( SwTextFormatInfo &rInf ) +bool SwTextInputFieldPortion::Format(SwTextFormatInfo &rTextFormatInfo) { - mbContainsInputFieldStart = - rInf.GetChar( rInf.GetIdx() ) == CH_TXT_ATR_INPUTFIELDSTART; - mbContainsInputFieldEnd = - rInf.GetChar( rInf.GetIdx() + rInf.GetLen() - 1 ) == CH_TXT_ATR_INPUTFIELDEND; - - bool bRet = false; - if ( rInf.GetLen() == 1 - && ( mbContainsInputFieldStart || mbContainsInputFieldEnd ) ) - { - Width( 0 ); - } - else - { - SwTextSlot aFormatText( &rInf, this, true, true ); - if ( rInf.GetLen() == 0 ) - { - Width( 0 ); - } - else - { - const sal_Int32 nFormerLineStart = rInf.GetLineStart(); - if ( !mbContainsInputFieldStart ) - { - rInf.SetLineStart( 0 ); - } - - bRet = SwTextPortion::Format( rInf ); - - if ( mbContainsInputFieldEnd ) - { - // adjust portion length accordingly, if complete text fits into the portion - if ( GetLen() == rInf.GetLen() ) - { - SetLen( GetLen() + 1 ); - } - } - - if ( mbContainsInputFieldStart ) - { - // adjust portion length accordingly - SetLen( GetLen() + 1 ); - } - else - { - rInf.SetLineStart( nFormerLineStart ); - } - } - } - - return bRet; + return SwTextPortion::Format(rTextFormatInfo); } void SwTextInputFieldPortion::Paint( const SwTextPaintInfo &rInf ) const |