sw/source/core/doc/extinput.cxx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
New commits: commit 9852b356dd635c8c87cb2cd50cfd642fedfb49bd Author: Szymon Kłos <[email protected]> AuthorDate: Thu Sep 16 16:53:40 2021 +0200 Commit: Szymon Kłos <[email protected]> CommitDate: Thu Sep 23 11:06:22 2021 +0200 lok: IME: directly copy formatting for inserted text This is a fix for online where after: lok: IME: preserve formatting when inserting at the end of paragraph https://cgit.freedesktop.org/libreoffice/core/commit/?h=distro/collabora/cp-6.4&id=bf96d1f23e5c12f9263643dfdab94fd1361bb098 text formatting is lost. Change-Id: I3d316f8f4c4d750eac7900228f9f2d99f70d99bd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122199 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Andras Timar <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122478 Reviewed-by: Szymon Kłos <[email protected]> diff --git a/sw/source/core/doc/extinput.cxx b/sw/source/core/doc/extinput.cxx index 5790126b1810..09f4dba1e016 100644 --- a/sw/source/core/doc/extinput.cxx +++ b/sw/source/core/doc/extinput.cxx @@ -104,18 +104,17 @@ SwExtTextInput::~SwExtTextInput() { // we need to keep correct formatting // ie. when we erase first, then we will lost information about format - // so: - // 0. initial status: xxxx | OLD - // 1. insert new content using Doc interface at the end so we will use the same formatting - // status: xxxx | OLD | NEW - // 2. erase old content which is placed at "start" position and before recently inserted text - // status: xxxx | NEW sal_Int32 nLenghtOfOldString = nEndCnt - nSttCnt; if( m_bInsText ) { rDoc.getIDocumentContentOperations().InsertString( *this, sText ); + + // Copy formatting to the inserted string + SfxItemSet aSet(pTNd->GetDoc().GetAttrPool(), aCharFormatSetRange); + pTNd->GetParaAttr( aSet, nSttCnt + nLenghtOfOldString, nEndCnt + nLenghtOfOldString ); + pTNd->SetAttr( aSet, nSttCnt, nEndCnt ); } pTNd->EraseText( rIdx, nLenghtOfOldString );
