From e1b123896d5b0a96c2959b6b6768c7cffabafd4f Mon Sep 17 00:00:00 2001 From: Justin Luth Date: Thu, 16 Apr 2015 13:31:39 +0300 Subject: [PATCH] tdf#87437 exclude CR/cell break from redline deletions The marker used in Word to identify table cell division was being included in the track-changes deletion from the following cell if the deletion was the first node in the cell. This would cause the two table cells to merge into one when changes were accepted by Word. (Problem not seen in LibreOffice itself.) Change-Id: Ia98017cbba7d3a43b67764ae0fa6447b7e90ca86 Reviewed-on: https://gerrit.libreoffice.org/15340 Tested-by: Jenkins Reviewed-by: Thorsten Behrens --- sw/source/filter/ww8/wrtw8nds.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index 8b3adb4c5337..b3162aa9b628 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -2114,13 +2114,19 @@ void MSWordExportBase::OutputTextNode( const SwTextNode& rNode ) sal_Int32 nAktPos = 0; sal_Int32 const nEnd = aStr.getLength(); + bool bIsEndOfCell = false; bool bIncludeEndOfParaCRInRedlineProperties = false; sal_Int32 nOpenAttrWithRange = 0; OUString aStringForImage("\001"); ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner; if ( pTextNodeInfo.get() != NULL ) + { pTextNodeInfoInner = pTextNodeInfo->getFirstInner(); + if ( pTextNodeInfoInner->isEndOfCell() ) { + bIsEndOfCell = true; + } + } do { const SwRedlineData* pRedlineData = aAttrIter.GetRunLevelRedline( nAktPos ); @@ -2323,6 +2329,11 @@ void MSWordExportBase::OutputTextNode( const SwTextNode& rNode ) } WriteCR( pTextNodeInfoInner ); + + if ( bIsEndOfCell ) + { + AttrOutput().OutputFKP(true); + } } } }