diff options
author | Attila Bakos (NISZ) <bakos.attilakaroly@nisz.hu> | 2022-04-05 13:37:55 +0200 |
---|---|---|
committer | László Németh <nemeth@numbertext.org> | 2022-04-28 11:47:42 +0200 |
commit | 41b012767feb8552b60a68c7be18d80c403304bf (patch) | |
tree | a0ec2781fbc34a50216c84b8be8d446deb5b7b86 /sw/source/core/text | |
parent | 6c724e18c2af227c2ad865342531ff35b0d511ac (diff) |
tdf#100680 sw DOCX compatibility: fix wrap of as_char flys
New DOCX compatibility flag "WordLikeWrapForAsCharFlys"
has been introduced which true in case of importing DOCX
documents. It modifies the wrapping of long words
with as_char anchored flys anchored into the same line,
resulting e.g. correct import of poor man's header lines
drawn by using underline characters under an image.
Note: this example was imported as a broken header line:
half of it was there after the left aligned image in the
same line, and after the line break, only the other half
under the image.
Change-Id: I9474900ef778bcf5ddc9d95f39d536d67015f3b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132571
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'sw/source/core/text')
-rw-r--r-- | sw/source/core/text/portxt.cxx | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sw/source/core/text/portxt.cxx b/sw/source/core/text/portxt.cxx index cf827ab6c3bf..140e29c168cc 100644 --- a/sw/source/core/text/portxt.cxx +++ b/sw/source/core/text/portxt.cxx @@ -419,8 +419,11 @@ bool SwTextPortion::Format_( SwTextFormatInfo &rInf ) else { bool bFirstPor = rInf.GetLineStart() == rInf.GetIdx(); + const bool bBreakLineIfHasFly + = rInf.GetTextFrame()->GetDoc().getIDocumentSettingAccess().get( + DocumentSettingId::WRAP_AS_CHAR_FLYS_LIKE_IN_OOXML); if (aGuess.BreakPos() != TextFrameIndex(COMPLETE_STRING) && - aGuess.BreakPos() != rInf.GetLineStart() && + (aGuess.BreakPos() != rInf.GetLineStart() || bBreakLineIfHasFly) && ( !bFirstPor || rInf.GetFly() || rInf.GetLast()->IsFlyPortion() || rInf.IsFirstMulti() ) && ( !rInf.GetLast()->IsBlankPortion() || @@ -430,7 +433,7 @@ bool SwTextPortion::Format_( SwTextFormatInfo &rInf ) } else // case C2, last exit - BreakCut( rInf, aGuess ); + BreakCut(rInf, aGuess); } return bFull; |