[Libreoffice-commits] core.git: Branch 'libreoffice-5-1' - sw/source
Xisco Fauli
anistenis at gmail.com
Tue Mar 15 16:00:44 UTC 2016
sw/source/core/frmedt/fecopy.cxx | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
New commits:
commit c0c41a27dde5779af9d2737e6871d82015aa6395
Author: Xisco Fauli <anistenis at 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 <ci at libreoffice.org>
Reviewed-by: Xisco FaulĂ <anistenis at gmail.com>
(cherry picked from commit 3f7a0f7dba759ed3763c900112b5eeb7ccfdd84d)
Reviewed-on: https://gerrit.libreoffice.org/22426
Reviewed-by: jan iversen <jani at documentfoundation.org>
diff --git a/sw/source/core/frmedt/fecopy.cxx b/sw/source/core/frmedt/fecopy.cxx
index 55ece42..2092fe8 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-
More information about the Libreoffice-commits
mailing list