summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Specht <oliver.specht@cib.de>2016-02-23 12:13:21 +0100
committerOliver Specht <oliver.specht@cib.de>2016-02-23 13:35:05 +0000
commitb29f268387f30d1d13ca167029d0d276214afaa0 (patch)
tree24be5224cd8136ea9427e99a85ea50e28b4ca249
parent904eccc93804f916ff82e7a2cb155b4d349d7f4a (diff)
tdf#97139: prevent loop while formatting small text lines
when text is inserted at the end of a line then text formatting starts some characters (platform and ENABLE_GRAPHITE dependent) before the insert position. In case of small lines this might even be the start of the line. To prevent going back to the previous line the cursor right margin flag needs to be reset. Change-Id: I73a62ce6c7707469fddeeffe0d7eec064c5989ea Reviewed-on: https://gerrit.libreoffice.org/22641 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Oliver Specht <oliver.specht@cib.de>
-rw-r--r--sw/source/core/text/itrform2.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx
index 2b1abbc13989..569840cb1912 100644
--- a/sw/source/core/text/itrform2.cxx
+++ b/sw/source/core/text/itrform2.cxx
@@ -2686,7 +2686,7 @@ namespace {
const sal_Int32 nOldLineEnd,
const std::vector<long> &rFlyStarts )
{
- SwTextFormatInfo txtFormatInfo = rThis.GetInfo();
+ SwTextFormatInfo& txtFormatInfo = rThis.GetInfo();
if ( txtFormatInfo.GetIdx() < txtFormatInfo.GetReformatStart() )
// the reformat position is behind our new line, that means
// something of our text has moved to the next line
@@ -2733,7 +2733,11 @@ namespace {
if ( nReformat > txtFormatInfo.GetLineStart() + nMaxContext )
nReformat = nReformat - nMaxContext;
else
+ {
nReformat = txtFormatInfo.GetLineStart();
+ //reset the margin flag - prevent loops
+ rThis.SetRightMargin(false);
+ }
}
// Weird situation: Our line used to end with a hole portion