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 <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
This commit is contained in:
Justin Luth 2015-04-16 13:31:39 +03:00 committed by Thorsten Behrens
parent 7ef02ac0ad
commit e1b123896d

View File

@ -2114,13 +2114,19 @@ void MSWordExportBase::OutputTextNode( const SwTextNode& rNode )
sal_Int32 nAktPos = 0; sal_Int32 nAktPos = 0;
sal_Int32 const nEnd = aStr.getLength(); sal_Int32 const nEnd = aStr.getLength();
bool bIsEndOfCell = false;
bool bIncludeEndOfParaCRInRedlineProperties = false; bool bIncludeEndOfParaCRInRedlineProperties = false;
sal_Int32 nOpenAttrWithRange = 0; sal_Int32 nOpenAttrWithRange = 0;
OUString aStringForImage("\001"); OUString aStringForImage("\001");
ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner; ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner;
if ( pTextNodeInfo.get() != NULL ) if ( pTextNodeInfo.get() != NULL )
{
pTextNodeInfoInner = pTextNodeInfo->getFirstInner(); pTextNodeInfoInner = pTextNodeInfo->getFirstInner();
if ( pTextNodeInfoInner->isEndOfCell() ) {
bIsEndOfCell = true;
}
}
do { do {
const SwRedlineData* pRedlineData = aAttrIter.GetRunLevelRedline( nAktPos ); const SwRedlineData* pRedlineData = aAttrIter.GetRunLevelRedline( nAktPos );
@ -2323,6 +2329,11 @@ void MSWordExportBase::OutputTextNode( const SwTextNode& rNode )
} }
WriteCR( pTextNodeInfoInner ); WriteCR( pTextNodeInfoInner );
if ( bIsEndOfCell )
{
AttrOutput().OutputFKP(true);
}
} }
} }
} }