summaryrefslogtreecommitdiff
path: root/sw/source/core/fields/reffld.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/fields/reffld.cxx')
-rw-r--r--sw/source/core/fields/reffld.cxx21
1 files changed, 13 insertions, 8 deletions
diff --git a/sw/source/core/fields/reffld.cxx b/sw/source/core/fields/reffld.cxx
index a9e47360dc89..c0ce2d7894fc 100644
--- a/sw/source/core/fields/reffld.cxx
+++ b/sw/source/core/fields/reffld.cxx
@@ -1104,33 +1104,37 @@ void SwGetRefFieldType::Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew
NotifyClients( pOld, pNew );
}
-static bool
-IsRefMarkHidden(SwRootFrame const& rLayout, SwTextRefMark const& rRefMark)
+namespace sw {
+
+bool IsMarkHintHidden(SwRootFrame const& rLayout,
+ SwTextNode const& rNode, SwTextAttrEnd const& rHint)
{
if (!rLayout.IsHideRedlines())
{
return false;
}
- SwTextNode const& rNode(rRefMark.GetTextNode());
SwTextFrame const*const pFrame(static_cast<SwTextFrame const*>(
rNode.getLayoutFrame(&rLayout)));
if (!pFrame)
{
return true;
}
- sal_Int32 const*const pEnd(const_cast<SwTextRefMark&>(rRefMark).GetEnd());
+ sal_Int32 const*const pEnd(const_cast<SwTextAttrEnd &>(rHint).GetEnd());
if (pEnd)
{
- return pFrame->MapModelToView(&rNode, rRefMark.GetStart())
+ return pFrame->MapModelToView(&rNode, rHint.GetStart())
== pFrame->MapModelToView(&rNode, *pEnd);
}
else
{
- return pFrame->MapModelToView(&rNode, rRefMark.GetStart())
- == pFrame->MapModelToView(&rNode, rRefMark.GetStart() + 1);
+ assert(rHint.HasDummyChar());
+ return pFrame->MapModelToView(&rNode, rHint.GetStart())
+ == pFrame->MapModelToView(&rNode, rHint.GetStart() + 1);
}
}
+} // namespace sw
+
SwTextNode* SwGetRefFieldType::FindAnchor( SwDoc* pDoc, const OUString& rRefMark,
sal_uInt16 nSubType, sal_uInt16 nSeqNo,
sal_Int32* pStt, sal_Int32* pEnd,
@@ -1146,7 +1150,8 @@ SwTextNode* SwGetRefFieldType::FindAnchor( SwDoc* pDoc, const OUString& rRefMark
{
const SwFormatRefMark *pRef = pDoc->GetRefMark( rRefMark );
SwTextRefMark const*const pRefMark(pRef ? pRef->GetTextRefMark() : nullptr);
- if (pRefMark && (!pLayout || !IsRefMarkHidden(*pLayout, *pRefMark)))
+ if (pRefMark && (!pLayout || !sw::IsMarkHintHidden(*pLayout,
+ pRefMark->GetTextNode(), *pRefMark)))
{
pTextNd = const_cast<SwTextNode*>(&pRef->GetTextRefMark()->GetTextNode());
*pStt = pRef->GetTextRefMark()->GetStart();