diff options
author | Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org> | 2018-02-08 20:45:55 +0100 |
---|---|---|
committer | Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org> | 2018-02-08 20:45:55 +0100 |
commit | d0bdf272be7cbef8f5bca5c187a5962a0dcd46e5 (patch) | |
tree | d50caeef9d094e84ec12abd4df58bf0967aa2951 | |
parent | 48d7745f5d3fbf79fa75a6ae9dfe8273813a6c2d (diff) |
ddefld: proper message passing
Change-Id: Ied02a75c3928f8c9f30dde03d0e749c228e1c5b2
-rw-r--r-- | sw/source/core/fields/ddefld.cxx | 12 | ||||
-rw-r--r-- | sw/source/core/fields/ddetbl.cxx | 10 |
2 files changed, 10 insertions, 12 deletions
diff --git a/sw/source/core/fields/ddefld.cxx b/sw/source/core/fields/ddefld.cxx index d8c54c00ca15..d21b711a75b2 100644 --- a/sw/source/core/fields/ddefld.cxx +++ b/sw/source/core/fields/ddefld.cxx @@ -181,18 +181,6 @@ const SwNode* SwIntrnlRefLink::GetAnchor() const bool SwIntrnlRefLink::IsInRange( sal_uLong nSttNd, sal_uLong nEndNd, sal_Int32 nStt, sal_Int32 nEnd ) const { - SwIterator<SwDepend,SwFieldType> aIter(rFieldType); - for(SwDepend* pLast = aIter.First(); pLast; pLast = aIter.Next()) - { - SwDepend* pDep = static_cast<SwDepend*>(pLast); - SwDDETable* pDDETable = static_cast<SwDDETable*>(pDep->GetToTell()); - const SwTableNode* pTableNd = pDDETable->GetTabSortBoxes()[0]-> - GetSttNd()->FindTableNode(); - if( pTableNd->GetNodes().IsDocNodes() && - nSttNd < pTableNd->EndOfSectionIndex() && - nEndNd > pTableNd->GetIndex() ) - return true; - } bool bInRange = false; rFieldType.CallSwClientNotify(sw::InRangeSearchHint( rFieldType.GetDoc()->GetNodes(), diff --git a/sw/source/core/fields/ddetbl.cxx b/sw/source/core/fields/ddetbl.cxx index 99a1843f2669..ce0b47a35be4 100644 --- a/sw/source/core/fields/ddetbl.cxx +++ b/sw/source/core/fields/ddetbl.cxx @@ -105,6 +105,16 @@ void SwDDETable::SwClientNotify( const SwModify& rModify, const SfxHint& rHint ) if( pNd && &pLinkAnchorHint->m_rNodes == &pNd->GetNodes() ) pLinkAnchorHint->m_rpFoundNode = pNd; } + else if(const sw::InRangeSearchHint* pInRangeHint = dynamic_cast<const sw::InRangeSearchHint*>(&rHint)) + { + if(pInRangeHint->m_rIsInRange) + return; + const SwTableNode* pTableNd = GetTabSortBoxes()[0]->GetSttNd()->FindTableNode(); + if( pTableNd->GetNodes().IsDocNodes() && + pInRangeHint->m_nSttNd < pTableNd->EndOfSectionIndex() && + pInRangeHint->m_nEndNd > pTableNd->GetIndex() ) + pInRangeHint->m_rIsInRange = true; + } } void SwDDETable::ChangeContent() |