sw/inc/IDocumentMarkAccess.hxx                          |    2 +-
 sw/qa/extras/globalfilter/globalfilter.cxx              |    2 +-
 sw/source/core/crsr/crbm.cxx                            |    2 +-
 sw/source/core/crsr/crstrvl.cxx                         |    2 +-
 sw/source/core/crsr/pam.cxx                             |    4 ++--
 sw/source/core/crsr/swcrsr.cxx                          |    2 +-
 sw/source/core/doc/DocumentContentOperationsManager.cxx |    2 +-
 sw/source/core/doc/docbm.cxx                            |   11 +++++++----
 sw/source/core/inc/MarkManager.hxx                      |    2 +-
 sw/source/core/text/inftxt.cxx                          |    2 +-
 sw/source/core/text/itrform2.cxx                        |    2 +-
 sw/source/core/text/redlnitr.cxx                        |    2 +-
 sw/source/core/txtnode/modeltoviewhelper.cxx            |    4 ++--
 sw/source/core/unocore/unotext.cxx                      |    4 ++--
 sw/source/filter/ww8/wrtw8nds.cxx                       |    4 ++--
 sw/source/uibase/shells/textfld.cxx                     |    6 +++---
 sw/source/uibase/shells/textsh1.cxx                     |    8 ++++----
 sw/source/uibase/uno/loktxdoc.cxx                       |    2 +-
 sw/source/uibase/uno/unotxdoc.cxx                       |    4 ++--
 19 files changed, 35 insertions(+), 32 deletions(-)

New commits:
commit f7afed99a807a9ce42edf84cab36a4710ddcd58e
Author:     Justin Luth <justin.l...@collabora.com>
AuthorDate: Thu Jan 12 11:35:02 2023 -0500
Commit:     Justin Luth <jl...@mail.com>
CommitDate: Sat Feb 11 12:10:55 2023 +0000

    sw: rename getFieldmarkFor() to getInnerFieldmarkFor()
    
    The same change was made for getBookmarkFor()
    in https://gerrit.libreoffice.org/c/core/+/145412
    
    Because otherwise it's quite confusing
    that we have a For() and an At()
    which could only be differentiated by a code read.
    
    Also improve getInnerFieldmarkFor() a tiny bit,
    so we process the first hit only once.
    
    Suggested at
    
<https://gerrit.libreoffice.org/c/core/+/145348/1#message-286262286f234823b390e8f962e3ba11f5fa71b2>.
    
    Change-Id: I47e815eea0b8ac0df4957ac0d224acb6c5975b8e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145486
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <jl...@mail.com>

diff --git a/sw/inc/IDocumentMarkAccess.hxx b/sw/inc/IDocumentMarkAccess.hxx
index e86a4efc8f1a..d53f180d3fe9 100644
--- a/sw/inc/IDocumentMarkAccess.hxx
+++ b/sw/inc/IDocumentMarkAccess.hxx
@@ -329,7 +329,7 @@ class IDocumentMarkAccess
 
         /// get Fieldmark for CH_TXT_ATR_FIELDSTART/CH_TXT_ATR_FIELDEND at rPos
         virtual ::sw::mark::IFieldmark* getFieldmarkAt(const SwPosition& rPos) 
const =0;
-        virtual ::sw::mark::IFieldmark* getFieldmarkFor(const SwPosition& pos) 
const =0;
+        virtual sw::mark::IFieldmark* getInnerFieldmarkFor(const SwPosition& 
pos) const = 0;
         virtual sw::mark::IFieldmark* getFieldmarkBefore(const SwPosition& 
pos, bool bLoop) const =0;
         virtual sw::mark::IFieldmark* getFieldmarkAfter(const SwPosition& pos, 
bool bLoop) const =0;
 
diff --git a/sw/qa/extras/globalfilter/globalfilter.cxx 
b/sw/qa/extras/globalfilter/globalfilter.cxx
index 7beb928dd344..2b8c37114ce1 100644
--- a/sw/qa/extras/globalfilter/globalfilter.cxx
+++ b/sw/qa/extras/globalfilter/globalfilter.cxx
@@ -889,7 +889,7 @@ static auto verifyNestedFieldmark(OUString const& rTestName,
         + u"baz" + OUStringChar(CH_TXT_ATR_FIELDEND)), outerString);
 
     // must return innermost mark
-    CPPUNIT_ASSERT_EQUAL(pInner, rIDMA.getFieldmarkFor(innerPos));
+    CPPUNIT_ASSERT_EQUAL(pInner, rIDMA.getInnerFieldmarkFor(innerPos));
 }
 
 void Test::testNestedFieldmark()
diff --git a/sw/source/core/crsr/crbm.cxx b/sw/source/core/crsr/crbm.cxx
index 53d2538538d8..e296bd50e8fe 100644
--- a/sw/source/core/crsr/crbm.cxx
+++ b/sw/source/core/crsr/crbm.cxx
@@ -287,7 +287,7 @@ bool SwCursorShell::IsFormProtected()
 {
     // TODO: Refactor
     SwPosition pos(*GetCursor()->Start());
-    return getIDocumentMarkAccess()->getFieldmarkFor(pos);
+    return getIDocumentMarkAccess()->getInnerFieldmarkFor(pos);
 }
 
 sw::mark::IFieldmark* SwCursorShell::GetFieldmarkAfter(bool bLoop)
diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx
index 954e9ba6707c..966127cece62 100644
--- a/sw/source/core/crsr/crstrvl.cxx
+++ b/sw/source/core/crsr/crstrvl.cxx
@@ -1612,7 +1612,7 @@ bool SwCursorShell::GetContentAtPos( const Point& rPt,
             if( !bRet && IsAttrAtPos::FormControl & 
rContentAtPos.eContentAtPos )
             {
                 IDocumentMarkAccess* pMarksAccess = 
GetDoc()->getIDocumentMarkAccess( );
-                sw::mark::IFieldmark* pFieldBookmark = 
pMarksAccess->getFieldmarkFor( aPos );
+                sw::mark::IFieldmark* pFieldBookmark = 
pMarksAccess->getInnerFieldmarkFor(aPos);
                 if (bCursorFoundExact && pFieldBookmark)
                 {
                     rContentAtPos.eContentAtPos = IsAttrAtPos::FormControl;
diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx
index bc3f9d7104a2..5b424358649c 100644
--- a/sw/source/core/crsr/pam.cxx
+++ b/sw/source/core/crsr/pam.cxx
@@ -880,8 +880,8 @@ bool SwPaM::HasReadonlySel(bool bFormView, bool const 
isReplace) const
     const SwDoc& rDoc = GetDoc();
     // Legacy text/combo/checkbox: never return read-only when inside these 
form fields.
     const IDocumentMarkAccess* pMarksAccess = rDoc.getIDocumentMarkAccess();
-    sw::mark::IFieldmark* pA = GetPoint() ? pMarksAccess->getFieldmarkFor( 
*GetPoint( ) ) : nullptr;
-    sw::mark::IFieldmark* pB = GetMark()  ? pMarksAccess->getFieldmarkFor( 
*GetMark( ) ) : pA;
+    sw::mark::IFieldmark* pA = GetPoint() ? 
pMarksAccess->getInnerFieldmarkFor(*GetPoint()) : nullptr;
+    sw::mark::IFieldmark* pB = GetMark()  ? 
pMarksAccess->getInnerFieldmarkFor(*GetMark()) : pA;
     // prevent the user from accidentally deleting the field itself when 
modifying the text.
     const bool bAtStartA = (pA != nullptr) && (pA->GetMarkStart() == 
*GetPoint());
     const bool bAtStartB = (pB != nullptr) && (pB->GetMarkStart() == 
*GetMark());
diff --git a/sw/source/core/crsr/swcrsr.cxx b/sw/source/core/crsr/swcrsr.cxx
index e3bb1a02c8d8..0c0411b9e51b 100644
--- a/sw/source/core/crsr/swcrsr.cxx
+++ b/sw/source/core/crsr/swcrsr.cxx
@@ -1423,7 +1423,7 @@ bool SwCursor::SelectWordWT( SwViewShell const * 
pViewShell, sal_Int16 nWordType
     {
         // Should we select the whole fieldmark?
         const IDocumentMarkAccess* pMarksAccess = 
GetDoc().getIDocumentMarkAccess( );
-        sw::mark::IFieldmark const*const 
pMark(pMarksAccess->getFieldmarkFor(*GetPoint()));
+        sw::mark::IFieldmark const*const 
pMark(pMarksAccess->getInnerFieldmarkFor(*GetPoint()));
         if (pMark && (IDocumentMarkAccess::GetType(*pMark) == 
IDocumentMarkAccess::MarkType::TEXT_FIELDMARK
                       || IDocumentMarkAccess::GetType(*pMark) == 
IDocumentMarkAccess::MarkType::DATE_FIELDMARK))
         {
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx 
b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index 4376278d7dc1..9881292afb30 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -2271,7 +2271,7 @@ bool DocumentContentOperationsManager::DelFullPara( 
SwPaM& rPam )
                             
fieldmarks.insert(m_rDoc.getIDocumentMarkAccess()->getFieldmarkAt(SwPosition(*pTextNode,
 j)));
                         break;
                         case CH_TXT_ATR_FIELDSEP:
-                            
fieldmarks.insert(m_rDoc.getIDocumentMarkAccess()->getFieldmarkFor(SwPosition(*pTextNode,
 j)));
+                            
fieldmarks.insert(m_rDoc.getIDocumentMarkAccess()->getInnerFieldmarkFor(SwPosition(*pTextNode,
 j)));
                         break;
                     }
                 }
diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
index e4840c06bb65..5dbd88064c73 100644
--- a/sw/source/core/doc/docbm.cxx
+++ b/sw/source/core/doc/docbm.cxx
@@ -1448,7 +1448,7 @@ namespace sw::mark
             : dynamic_cast<IFieldmark*>(*pFieldmark);
     }
 
-    IFieldmark* MarkManager::getFieldmarkFor(const SwPosition& rPos) const
+    IFieldmark* MarkManager::getInnerFieldmarkFor(const SwPosition& rPos) const
     {
         auto itFieldmark = find_if(
             m_vFieldmarks.begin(),
@@ -1457,6 +1457,9 @@ namespace sw::mark
         if (itFieldmark == m_vFieldmarks.end())
             return nullptr;
         auto pFieldmark(*itFieldmark);
+
+        // See if any fieldmarks after the first hit are closer to rPos.
+        ++itFieldmark;
         for ( ; itFieldmark != m_vFieldmarks.end()
                 && (**itFieldmark).GetMarkStart() <= rPos; ++itFieldmark)
         {   // find the innermost fieldmark
@@ -1565,13 +1568,13 @@ namespace sw::mark
 
         SwEditWin& rEditWin = pSwView->GetEditWin();
         SwPosition aPos(*rCursorShell.GetCursor()->GetPoint());
-        IFieldmark* pFieldBM = getFieldmarkFor(aPos);
+        IFieldmark* pFieldBM = getInnerFieldmarkFor(aPos);
         FieldmarkWithDropDownButton* pNewActiveFieldmark = nullptr;
         if ((!pFieldBM || (pFieldBM->GetFieldname() != ODF_FORMDROPDOWN && 
pFieldBM->GetFieldname() != ODF_FORMDATE))
             && aPos.GetContentIndex() > 0 )
         {
             aPos.AdjustContent(-1);
-            pFieldBM = getFieldmarkFor(aPos);
+            pFieldBM = getInnerFieldmarkFor(aPos);
         }
 
         if ( pFieldBM && (pFieldBM->GetFieldname() == ODF_FORMDROPDOWN ||
@@ -2080,7 +2083,7 @@ InsertText MakeInsertText(SwTextNode& rNode, const 
sal_Int32 nPos, const sal_Int
     SwCursor cursor(SwPosition(rNode, nPos), nullptr);
     bool isInsideFieldmarkCommand(false);
     bool isInsideFieldmarkResult(false);
-    while (auto const*const pMark = 
rNode.GetDoc().getIDocumentMarkAccess()->getFieldmarkFor(*cursor.GetPoint()))
+    while (auto const*const pMark = 
rNode.GetDoc().getIDocumentMarkAccess()->getInnerFieldmarkFor(*cursor.GetPoint()))
     {
         if (sw::mark::FindFieldSep(*pMark) < *cursor.GetPoint())
         {
diff --git a/sw/source/core/inc/MarkManager.hxx 
b/sw/source/core/inc/MarkManager.hxx
index 641e8fb70695..7e9280f12aaa 100644
--- a/sw/source/core/inc/MarkManager.hxx
+++ b/sw/source/core/inc/MarkManager.hxx
@@ -95,7 +95,7 @@ namespace sw::mark {
             virtual const_iterator_t getFieldmarksEnd() const override;
             virtual sal_Int32 getFieldmarksCount() const override;
             virtual ::sw::mark::IFieldmark* getFieldmarkAt(const SwPosition& 
rPos) const override;
-            virtual ::sw::mark::IFieldmark* getFieldmarkFor(const SwPosition& 
rPos) const override;
+            virtual sw::mark::IFieldmark* getInnerFieldmarkFor(const 
SwPosition& rPos) const override;
             virtual sw::mark::IFieldmark* getFieldmarkBefore(const SwPosition& 
rPos, bool bLoop) const override;
             virtual sw::mark::IFieldmark* getFieldmarkAfter(const SwPosition& 
rPos, bool bLoop) const override;
 
diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx
index 737b6b3b2700..a4fea746dc9d 100644
--- a/sw/source/core/text/inftxt.cxx
+++ b/sw/source/core/text/inftxt.cxx
@@ -1152,7 +1152,7 @@ void SwTextPaintInfo::DrawBackBrush( const SwLinePortion 
&rPor ) const
         {
             SwPosition const aPosition(m_pFrame->MapViewToModelPos(GetIdx()));
             const ::sw::mark::IMark* pFieldmark =
-                
m_pFrame->GetDoc().getIDocumentMarkAccess()->getFieldmarkFor(aPosition);
+                
m_pFrame->GetDoc().getIDocumentMarkAccess()->getInnerFieldmarkFor(aPosition);
             bool bIsStartMark = (TextFrameIndex(1) == GetLen()
                     && CH_TXT_ATR_FIELDSTART == 
GetText()[sal_Int32(GetIdx())]);
             if(pFieldmark) {
diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx
index 6c1f0c06a5a5..e9e9e0f685a2 100644
--- a/sw/source/core/text/itrform2.cxx
+++ b/sw/source/core/text/itrform2.cxx
@@ -1235,7 +1235,7 @@ SwTextPortion *SwTextFormatter::WhichTextPor( 
SwTextFormatInfo &rInf ) const
             auto const ch(rInf.GetText()[sal_Int32(rInf.GetIdx())]);
             SwTextFrame const*const pFrame(rInf.GetTextFrame());
             SwPosition aPosition(pFrame->MapViewToModelPos(rInf.GetIdx()));
-            sw::mark::IFieldmark *pBM = 
pFrame->GetDoc().getIDocumentMarkAccess()->getFieldmarkFor(aPosition);
+            sw::mark::IFieldmark *pBM = 
pFrame->GetDoc().getIDocumentMarkAccess()->getInnerFieldmarkFor(aPosition);
             if(pBM != nullptr && pBM->GetFieldname( ) == ODF_FORMDATE)
             {
                 if (ch == CH_TXT_ATR_FIELDSTART)
diff --git a/sw/source/core/text/redlnitr.cxx b/sw/source/core/text/redlnitr.cxx
index c44b527536c1..0e89b7f75a6e 100644
--- a/sw/source/core/text/redlnitr.cxx
+++ b/sw/source/core/text/redlnitr.cxx
@@ -153,7 +153,7 @@ public:
                 sw::mark::IFieldmark const*const pFieldmark(
                         m_eFieldmarkMode == sw::FieldmarkMode::ShowResult
                             ? m_rIDMA.getFieldmarkAt(*m_oNextFieldmarkHide)
-                            : m_rIDMA.getFieldmarkFor(*m_oNextFieldmarkHide));
+                            : 
m_rIDMA.getInnerFieldmarkFor(*m_oNextFieldmarkHide));
                 assert(pFieldmark);
                 m_Fieldmark.first = pFieldmark;
                 // for cursor travelling, there should be 2 visible chars;
diff --git a/sw/source/core/txtnode/modeltoviewhelper.cxx 
b/sw/source/core/txtnode/modeltoviewhelper.cxx
index d7ebeaf57775..21835e90b14e 100644
--- a/sw/source/core/txtnode/modeltoviewhelper.cxx
+++ b/sw/source/core/txtnode/modeltoviewhelper.cxx
@@ -117,7 +117,7 @@ ModelToViewHelper::ModelToViewHelper(const SwTextNode 
&rNode,
             sw::mark::IFieldmark const* pFieldMark(nullptr);
             while (true) // loop to skip NonTextFieldmarks, those are handled 
later
             {
-                pFieldMark = rIDMA.getFieldmarkFor(*cursor.GetPoint());
+                pFieldMark = rIDMA.getInnerFieldmarkFor(*cursor.GetPoint());
                 if (pFieldMark == nullptr
                     || 
pFieldMark->GetMarkStart().GetNode().GetTextNode()->GetText()[
                             pFieldMark->GetMarkStart().GetContentIndex()]
@@ -136,7 +136,7 @@ ModelToViewHelper::ModelToViewHelper(const SwTextNode 
&rNode,
                 break;
             }
             
assert(pFieldMark->GetMarkStart().GetNode().GetTextNode()->GetText()[pFieldMark->GetMarkStart().GetContentIndex()]
 != CH_TXT_ATR_FORMELEMENT);
-            // getFieldmarkFor may also return one that starts at rNode,0 -
+            // getInnerFieldmarkFor may also return one that starts at rNode,0 
-
             // skip it, must be handled in loop below
             if (pFieldMark->GetMarkStart().GetNode() < rNode)
             {
diff --git a/sw/source/core/unocore/unotext.cxx 
b/sw/source/core/unocore/unotext.cxx
index 55270c1d8ee9..a3853fb8c643 100644
--- a/sw/source/core/unocore/unotext.cxx
+++ b/sw/source/core/unocore/unotext.cxx
@@ -1997,7 +1997,7 @@ void SwXText::Impl::ConvertCell(
 
     // tdf#149649 delete any fieldmarks overlapping the cell
     IDocumentMarkAccess & rIDMA(*m_pDoc->getIDocumentMarkAccess());
-    while (::sw::mark::IFieldmark *const pMark = 
rIDMA.getFieldmarkFor(*aStartCellPam.Start()))
+    while (sw::mark::IFieldmark *const pMark = 
rIDMA.getInnerFieldmarkFor(*aStartCellPam.Start()))
     {
         if (pMark->GetMarkEnd() <= *aEndCellPam.End())
         {
@@ -2025,7 +2025,7 @@ void SwXText::Impl::ConvertCell(
             }
         }
     }
-    while (::sw::mark::IFieldmark *const pMark = 
rIDMA.getFieldmarkFor(*aEndCellPam.End()))
+    while (sw::mark::IFieldmark *const pMark = 
rIDMA.getInnerFieldmarkFor(*aEndCellPam.End()))
     {
         if (*aStartCellPam.Start() <= pMark->GetMarkStart())
         {
diff --git a/sw/source/filter/ww8/wrtw8nds.cxx 
b/sw/source/filter/ww8/wrtw8nds.cxx
index 5b68a1dc94b2..2b741c322477 100644
--- a/sw/source/filter/ww8/wrtw8nds.cxx
+++ b/sw/source/filter/ww8/wrtw8nds.cxx
@@ -2207,7 +2207,7 @@ bool MSWordExportBase::NeedTextNodeSplit( const 
SwTextNode& rNd, SwSoftPageBreak
         if (pos < it) // previous one might have skipped over it
         {
             pos = it;
-            while (auto const*const pMark = 
rIDMA.getFieldmarkFor(SwPosition(rNd, pos)))
+            while (auto const*const pMark = 
rIDMA.getInnerFieldmarkFor(SwPosition(rNd, pos)))
             {
                 if (pMark->GetMarkEnd().GetNode() != rNd)
                 {
@@ -2544,7 +2544,7 @@ void MSWordExportBase::OutputTextNode( SwTextNode& rNode )
                 {
                     SwPosition aPosition(rNode, nCurrentPos);
                     // the innermost field is the correct one
-                    ::sw::mark::IFieldmark const*const pFieldmark = 
pMarkAccess->getFieldmarkFor(aPosition);
+                    sw::mark::IFieldmark const*const pFieldmark = 
pMarkAccess->getInnerFieldmarkFor(aPosition);
                     assert(pFieldmark);
                     // DateFieldmark / ODF_FORMDATE is not a field...
                     if (pFieldmark->GetFieldname() != ODF_FORMDATE)
diff --git a/sw/source/uibase/shells/textfld.cxx 
b/sw/source/uibase/shells/textfld.cxx
index a71ca8702f2f..b60df6477bf5 100644
--- a/sw/source/uibase/shells/textfld.cxx
+++ b/sw/source/uibase/shells/textfld.cxx
@@ -1128,7 +1128,7 @@ FIELD_INSERT:
 
         IDocumentMarkAccess& rIDMA = *rSh.getIDocumentMarkAccess();
         SwPosition& rCursor = *rSh.GetCursor()->GetPoint();
-        sw::mark::IFieldmark* pFieldmark = rIDMA.getFieldmarkFor(rCursor);
+        sw::mark::IFieldmark* pFieldmark = rIDMA.getInnerFieldmarkFor(rCursor);
         if (!pFieldmark)
         {
             break;
@@ -1353,12 +1353,12 @@ void SwTextShell::StateField( SfxItemSet &rSet )
             {
                 // Check whether we are in a text form field
                 SwPosition aCursorPos(*rSh.GetCursor()->GetPoint());
-                sw::mark::IFieldmark* pFieldBM = 
GetShell().getIDocumentMarkAccess()->getFieldmarkFor(aCursorPos);
+                sw::mark::IFieldmark* pFieldBM = 
GetShell().getIDocumentMarkAccess()->getInnerFieldmarkFor(aCursorPos);
                 if ((!pFieldBM || pFieldBM->GetFieldname() != ODF_FORMTEXT)
                     && aCursorPos.GetContentIndex() > 0)
                 {
                     SwPosition aPos(*aCursorPos.GetContentNode(), 
aCursorPos.GetContentIndex() - 1);
-                    pFieldBM = 
GetShell().getIDocumentMarkAccess()->getFieldmarkFor(aPos);
+                    pFieldBM = 
GetShell().getIDocumentMarkAccess()->getInnerFieldmarkFor(aPos);
                 }
                 if (pFieldBM && pFieldBM->GetFieldname() == ODF_FORMTEXT &&
                     (aCursorPos > pFieldBM->GetMarkStart() && aCursorPos < 
pFieldBM->GetMarkEnd() ))
diff --git a/sw/source/uibase/shells/textsh1.cxx 
b/sw/source/uibase/shells/textsh1.cxx
index 3ef16213576c..96c48c7df072 100644
--- a/sw/source/uibase/shells/textsh1.cxx
+++ b/sw/source/uibase/shells/textsh1.cxx
@@ -1885,11 +1885,11 @@ void SwTextShell::Execute(SfxRequest &rReq)
     case SID_FM_CTL_PROPERTIES:
     {
         SwPosition aPos(*GetShell().GetCursor()->GetPoint());
-        sw::mark::IFieldmark* pFieldBM = 
GetShell().getIDocumentMarkAccess()->getFieldmarkFor(aPos);
+        sw::mark::IFieldmark* pFieldBM = 
GetShell().getIDocumentMarkAccess()->getInnerFieldmarkFor(aPos);
         if ( !pFieldBM )
         {
             aPos.AdjustContent(-1);
-            pFieldBM = 
GetShell().getIDocumentMarkAccess()->getFieldmarkFor(aPos);
+            pFieldBM = 
GetShell().getIDocumentMarkAccess()->getInnerFieldmarkFor(aPos);
         }
 
         if ( pFieldBM && pFieldBM->GetFieldname() == ODF_FORMDROPDOWN
@@ -2718,11 +2718,11 @@ void SwTextShell::GetState( SfxItemSet &rSet )
 
                 // Enable it if we have a valid object other than what form 
shell knows
                 SwPosition aPos(*GetShell().GetCursor()->GetPoint());
-                sw::mark::IFieldmark* pFieldBM = 
GetShell().getIDocumentMarkAccess()->getFieldmarkFor(aPos);
+                sw::mark::IFieldmark* pFieldBM = 
GetShell().getIDocumentMarkAccess()->getInnerFieldmarkFor(aPos);
                 if ( !pFieldBM && aPos.GetContentIndex() > 0)
                 {
                     aPos.AdjustContent(-1);
-                    pFieldBM = 
GetShell().getIDocumentMarkAccess()->getFieldmarkFor(aPos);
+                    pFieldBM = 
GetShell().getIDocumentMarkAccess()->getInnerFieldmarkFor(aPos);
                 }
                 if ( pFieldBM && (pFieldBM->GetFieldname() == ODF_FORMDROPDOWN 
|| pFieldBM->GetFieldname() == ODF_FORMDATE) )
                 {
diff --git a/sw/source/uibase/uno/loktxdoc.cxx 
b/sw/source/uibase/uno/loktxdoc.cxx
index f9e6b0707fcb..4843af4cf443 100644
--- a/sw/source/uibase/uno/loktxdoc.cxx
+++ b/sw/source/uibase/uno/loktxdoc.cxx
@@ -125,7 +125,7 @@ void GetTextFormField(tools::JsonWriter& rJsonWriter, 
SwDocShell* pDocShell,
     IDocumentMarkAccess& rIDMA = 
*pDocShell->GetDoc()->getIDocumentMarkAccess();
     SwWrtShell* pWrtShell = pDocShell->GetWrtShell();
     SwPosition& rCursor = *pWrtShell->GetCursor()->GetPoint();
-    sw::mark::IFieldmark* pFieldmark = rIDMA.getFieldmarkFor(rCursor);
+    sw::mark::IFieldmark* pFieldmark = rIDMA.getInnerFieldmarkFor(rCursor);
     auto typeNode = rJsonWriter.startNode("field");
     if (!pFieldmark)
     {
diff --git a/sw/source/uibase/uno/unotxdoc.cxx 
b/sw/source/uibase/uno/unotxdoc.cxx
index 3ee457723a40..effdfcd30f63 100644
--- a/sw/source/uibase/uno/unotxdoc.cxx
+++ b/sw/source/uibase/uno/unotxdoc.cxx
@@ -3352,11 +3352,11 @@ void SwXTextDocument::executeFromFieldEvent(const 
StringMap& aArguments)
 
     sal_Int32 nSelection = aIter->second.toInt32();
     SwPosition aPos(*m_pDocShell->GetWrtShell()->GetCursor()->GetPoint());
-    sw::mark::IFieldmark* pFieldBM = 
m_pDocShell->GetWrtShell()->getIDocumentMarkAccess()->getFieldmarkFor(aPos);
+    sw::mark::IFieldmark* pFieldBM = 
m_pDocShell->GetWrtShell()->getIDocumentMarkAccess()->getInnerFieldmarkFor(aPos);
     if ( !pFieldBM )
     {
         aPos.AdjustContent(-1);
-        pFieldBM = 
m_pDocShell->GetWrtShell()->getIDocumentMarkAccess()->getFieldmarkFor(aPos);
+        pFieldBM = 
m_pDocShell->GetWrtShell()->getIDocumentMarkAccess()->getInnerFieldmarkFor(aPos);
     }
     if (pFieldBM && pFieldBM->GetFieldname() == ODF_FORMDROPDOWN)
     {

Reply via email to