summaryrefslogtreecommitdiff
path: root/sw/source
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.com>2015-10-12 23:28:53 +0200
committerTomaž Vajngerl <tomaz.vajngerl@collabora.com>2015-10-12 23:40:15 +0200
commit5e1714fd7fcb45fa5f1220d892dba597da40b500 (patch)
tree56220fb2989d5a9120af226c41b20660d63785d5 /sw/source
parent1db251e1a191844eb99462a67e9acf4f4b67233f (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.cxx53
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