summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@libreoffice.org>2018-02-08 20:45:55 +0100
committerBjoern Michaelsen <bjoern.michaelsen@libreoffice.org>2018-02-08 20:45:55 +0100
commitd0bdf272be7cbef8f5bca5c187a5962a0dcd46e5 (patch)
treed50caeef9d094e84ec12abd4df58bf0967aa2951
parent48d7745f5d3fbf79fa75a6ae9dfe8273813a6c2d (diff)
ddefld: proper message passing
Change-Id: Ied02a75c3928f8c9f30dde03d0e749c228e1c5b2
-rw-r--r--sw/source/core/fields/ddefld.cxx12
-rw-r--r--sw/source/core/fields/ddetbl.cxx10
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()