sw/source/core/frmedt/fecopy.cxx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-)
New commits: commit 3f7a0f7dba759ed3763c900112b5eeb7ccfdd84d Author: Xisco Fauli <aniste...@gmail.com> Date: Thu Feb 4 22:50:47 2016 +0100 tdf#97429: Fix crash on print selected area Regression from 9eb61489ee03486a7147acdf923eaf5e3f355183 Use DelFlyInRange to iterate over nodes' range Change-Id: I219c7ec83eaa69990340d423dc34546131bb372c Reviewed-on: https://gerrit.libreoffice.org/22129 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Xisco Faulà <aniste...@gmail.com> diff --git a/sw/source/core/frmedt/fecopy.cxx b/sw/source/core/frmedt/fecopy.cxx index b40a0bfd..dc7939d 100644 --- a/sw/source/core/frmedt/fecopy.cxx +++ b/sw/source/core/frmedt/fecopy.cxx @@ -90,6 +90,7 @@ bool SwFEShell::Copy( SwDoc* pClpDoc, const OUString* pNewClpText ) // delete content if ClpDocument contains content SwNodeIndex aSttIdx( pClpDoc->GetNodes().GetEndOfExtras(), 2 ); + SwNodeIndex aEndNdIdx( *aSttIdx.GetNode().EndOfSectionNode() ); SwTextNode* pTextNd = aSttIdx.GetNode().GetTextNode(); if (!pTextNd || !pTextNd->GetText().isEmpty() || aSttIdx.GetIndex()+1 != pClpDoc->GetNodes().GetEndOfContent().GetIndex() ) @@ -102,11 +103,19 @@ bool SwFEShell::Copy( SwDoc* pClpDoc, const OUString* pNewClpText ) } // also delete surrounding FlyFrames if any - for( auto pFormat : *pClpDoc->GetSpzFrameFormats() ) + for( const auto pFly : *pClpDoc->GetSpzFrameFormats() ) { - SwFlyFrameFormat* pFly = static_cast<SwFlyFrameFormat*>(pFormat); - pClpDoc->getIDocumentLayoutAccess().DelLayoutFormat( pFly ); + SwFormatAnchor const*const pAnchor = &pFly->GetAnchor(); + SwPosition const*const pAPos = pAnchor->GetContentAnchor(); + if (pAPos && + ((FLY_AT_PARA == pAnchor->GetAnchorId()) || + (FLY_AT_CHAR == pAnchor->GetAnchorId())) && + aSttIdx <= pAPos->nNode && pAPos->nNode <= aEndNdIdx ) + { + pClpDoc->getIDocumentLayoutAccess().DelLayoutFormat( pFly ); + } } + pClpDoc->GetDocumentFieldsManager().GCFieldTypes(); // delete the FieldTypes // if a string was passed, copy it to the clipboard-
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits