diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-02-22 23:58:04 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-02-23 00:02:48 +0100 |
commit | 91fab30f3b1617024ee2eadf3c7ad1ea84d7f6dd (patch) | |
tree | 23fd6cad48765153f00a0f9bee23821d737e88a6 | |
parent | 23e52c207760c596cc2f841ef59f3100c110d591 (diff) |
fdo#46482: prevent duplication of frames:
SwDoc::MakeFlySection: abuse the SwDoc::mbRedlineMove flag, which
(with the fix for fdo#40599) does exactly what is necessary to prevent
the spurious copies.
Also, remove the ugly hack to work around this problem from
SwXText::convertToTextFrame.
-rw-r--r-- | sw/source/core/doc/doclay.cxx | 3 | ||||
-rw-r--r-- | sw/source/core/unocore/unotext.cxx | 6 |
2 files changed, 3 insertions, 6 deletions
diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx index 17264ca8f92d..c1841353a863 100644 --- a/sw/source/core/doc/doclay.cxx +++ b/sw/source/core/doc/doclay.cxx @@ -840,8 +840,10 @@ if( GetIDocumentUndoRedo().DoesUndo() ) SwPaM* pTmp = (SwPaM*)&rPam; sal_Bool bOldFlag = mbCopyIsMove; bool const bOldUndo = GetIDocumentUndoRedo().DoesUndo(); + bool const bOldRedlineMove(IsRedlineMove()); mbCopyIsMove = sal_True; GetIDocumentUndoRedo().DoUndo(false); + SetRedlineMove(true); do { if( pTmp->HasMark() && *pTmp->GetPoint() != *pTmp->GetMark() ) @@ -850,6 +852,7 @@ if( GetIDocumentUndoRedo().DoesUndo() ) } pTmp = static_cast<SwPaM*>(pTmp->GetNext()); } while ( &rPam != pTmp ); + SetRedlineMove(bOldRedlineMove); mbCopyIsMove = bOldFlag; GetIDocumentUndoRedo().DoUndo(bOldUndo); diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx index 2c2570012df3..c83d243c447b 100644 --- a/sw/source/core/unocore/unotext.cxx +++ b/sw/source/core/unocore/unotext.cxx @@ -1720,12 +1720,6 @@ throw (lang::IllegalArgumentException, uno::RuntimeException) SwFmtAnchor aAnchor((*i)->GetAnchor()); aAnchor.SetAnchor(aMovePam.Start()); m_pImpl->m_pDoc->SetAttr(aAnchor, *(*i)); - - // delete the old anchor - SwSpzFrmFmts* pFrmFmts = m_pImpl->m_pDoc->GetSpzFrmFmts(); - // here we rely on that fact that this is a sorted list, where the last element is the newly created frame - SwFrmFmt *pFrmFmt = (*pFrmFmts)[pFrmFmts->Count()-1]; - m_pImpl->m_pDoc->DelLayoutFmt(pFrmFmt); } } } |