[Libreoffice-commits] core.git: sw/inc sw/source

Jim Raykowski (via logerrit) logerrit at kemper.freedesktop.org
Thu Dec 3 05:24:06 UTC 2020


 sw/inc/unotxdoc.hxx                |   30 +++++
 sw/source/uibase/docvw/edtwin2.cxx |    3 
 sw/source/uibase/inc/wrtsh.hxx     |    1 
 sw/source/uibase/uiview/view2.cxx  |    7 +
 sw/source/uibase/uno/unotxdoc.cxx  |  192 +++++++++++++++++++++++++++++++------
 sw/source/uibase/utlui/content.cxx |   41 +------
 sw/source/uibase/wrtsh/move.cxx    |   37 +++++++
 7 files changed, 250 insertions(+), 61 deletions(-)

New commits:
commit 1df2581cfffc87386c6de7614793b2d664244e5a
Author:     Jim Raykowski <raykowj at gmail.com>
AuthorDate: Sun Nov 1 13:00:41 2020 -0900
Commit:     Jim Raykowski <raykowj at gmail.com>
CommitDate: Thu Dec 3 06:23:33 2020 +0100

    tdf#137838 SW: Add ability to create a hyperlink to a drawing object
    
    within a document
    
    Change-Id: Ie51ad6a0a9da1a2478a4a4abc73ba793ea92704c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105164
    Tested-by: Jenkins
    Reviewed-by: Jim Raykowski <raykowj at gmail.com>

diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx
index 1f814a915b05..48f49a2694b7 100644
--- a/sw/inc/unotxdoc.hxx
+++ b/sw/inc/unotxdoc.hxx
@@ -480,6 +480,7 @@ class SwXLinkTargetSupplier final : public cppu::WeakImplHelper
     OUString m_sSections;
     OUString m_sOutlines;
     OUString m_sBookmarks;
+    OUString m_sDrawingObjects;
 
 public:
     SwXLinkTargetSupplier(SwXTextDocument& rxDoc);
@@ -579,6 +580,35 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
 };
 
+class SwXDrawingObjectTarget final : public cppu::WeakImplHelper
+<
+    css::beans::XPropertySet,
+    css::lang::XServiceInfo
+>
+{
+    const SfxItemPropertySet*   m_pPropSet;
+    OUString                    m_sDrawingObjectText;
+
+public:
+    SwXDrawingObjectTarget(const OUString& rDrawingObjectText);
+    virtual ~SwXDrawingObjectTarget() override;
+
+    //XPropertySet
+    virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) override;
+    virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override;
+    virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
+    virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
+    virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
+    virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
+    virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
+
+    //XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
+    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
+};
+
+
 enum class SwCreateDrawTable {
     Dash = 1, Gradient, Hatch, Bitmap, TransGradient, Marker, Defaults
 };
diff --git a/sw/source/uibase/docvw/edtwin2.cxx b/sw/source/uibase/docvw/edtwin2.cxx
index ae168908de6f..5770afbd4c05 100644
--- a/sw/source/uibase/docvw/edtwin2.cxx
+++ b/sw/source/uibase/docvw/edtwin2.cxx
@@ -171,7 +171,8 @@ void SwEditWin::RequestHelp(const HelpEvent &rEvt)
                         sSuffix == "outline" ||
                         sSuffix == "text" ||
                         sSuffix == "graphic" ||
-                        sSuffix == "ole" )
+                        sSuffix == "ole" ||
+                        sSuffix == "drawingobject" )
                         sText = sText.copy( 0, nFound - 1);
                 }
                 // #i104300#
diff --git a/sw/source/uibase/inc/wrtsh.hxx b/sw/source/uibase/inc/wrtsh.hxx
index 4499c0c15763..d4c9a6be9d64 100644
--- a/sw/source/uibase/inc/wrtsh.hxx
+++ b/sw/source/uibase/inc/wrtsh.hxx
@@ -482,6 +482,7 @@ typedef bool (SwWrtShell::*FNSimpleMove)();
     bool GotoTable( const OUString& rName );
     void GotoFormatField( const SwFormatField& rField );
     const SwRangeRedline* GotoRedline( SwRedlineTable::size_type nArrPos, bool bSelect);
+    bool GotoDrawingObject(std::u16string_view rName);
 
     void ChangeHeaderOrFooter(std::u16string_view rStyleName, bool bHeader, bool bOn, bool bShowWarning);
     virtual void SetShowHeaderFooterSeparator( FrameControlType eControl, bool bShow ) override;
diff --git a/sw/source/uibase/uiview/view2.cxx b/sw/source/uibase/uiview/view2.cxx
index 1071ed43501f..cd8e948c78b7 100644
--- a/sw/source/uibase/uiview/view2.cxx
+++ b/sw/source/uibase/uiview/view2.cxx
@@ -2066,7 +2066,9 @@ bool SwView::JumpToSwMark( const OUString& rMark )
             sCmp = sCmp.toAsciiLowerCase();
             FlyCntType eFlyType = FLYCNTTYPE_ALL;
 
-            if( sCmp == "region" )
+            if (sCmp == "drawingobject")
+                bRet = m_pWrtShell->GotoDrawingObject(sName);
+            else if( sCmp == "region" )
             {
                 m_pWrtShell->EnterStdMode();
                 bRet = m_pWrtShell->GotoRegion( sName );
@@ -2159,6 +2161,9 @@ bool SwView::JumpToSwMark( const OUString& rMark )
         // reset ViewStatus
         SetCursorAtTop( bSaveCT, bSaveCC );
 
+        if(!m_pWrtShell->IsFrameSelected() && !m_pWrtShell->IsObjSelected())
+            m_pWrtShell->ShowCursor();
+
         if( !bHasShFocus )
             m_pWrtShell->ShellLoseFocus();
     }
diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx
index 2a723e185a64..18f84f8c64df 100644
--- a/sw/source/uibase/uno/unotxdoc.cxx
+++ b/sw/source/uibase/uno/unotxdoc.cxx
@@ -160,6 +160,8 @@
 #include <xmloff/odffields.hxx>
 #include <tools/json_writer.hxx>
 
+#include <svx/svdpage.hxx>
+
 #define TWIPS_PER_PIXEL 15
 
 using namespace ::com::sun::star;
@@ -3870,6 +3872,7 @@ SwXLinkTargetSupplier::SwXLinkTargetSupplier(SwXTextDocument& rxDoc) :
     m_sSections   = SwResId(STR_CONTENT_TYPE_REGION);
     m_sOutlines   = SwResId(STR_CONTENT_TYPE_OUTLINE);
     m_sBookmarks  = SwResId(STR_CONTENT_TYPE_BOOKMARK);
+    m_sDrawingObjects = SwResId(STR_CONTENT_TYPE_DRAWOBJECT);
 }
 
 SwXLinkTargetSupplier::~SwXLinkTargetSupplier()
@@ -3932,6 +3935,13 @@ Any SwXLinkTargetSupplier::getByName(const OUString& rName)
                                         m_pxDoc->getBookmarks(), rName, sSuffix );
         aRet <<= Reference< XPropertySet >(xBkms, UNO_QUERY);
     }
+    else if(rName == m_sDrawingObjects)
+    {
+        sSuffix += "drawingobject";
+        Reference<XNameAccess> xDrawingObjects = new SwXLinkNameAccessWrapper(
+                    *m_pxDoc, rName, sSuffix);
+        aRet <<= Reference<XPropertySet>(xDrawingObjects, UNO_QUERY);
+    }
     else
         throw NoSuchElementException();
     return aRet;
@@ -3945,7 +3955,8 @@ Sequence< OUString > SwXLinkTargetSupplier::getElementNames()
              m_sOLEs,
              m_sSections,
              m_sOutlines,
-             m_sBookmarks };
+             m_sBookmarks,
+             m_sDrawingObjects };
 }
 
 sal_Bool SwXLinkTargetSupplier::hasByName(const OUString& rName)
@@ -3956,7 +3967,8 @@ sal_Bool SwXLinkTargetSupplier::hasByName(const OUString& rName)
         rName == m_sOLEs   ||
         rName == m_sSections ||
         rName == m_sOutlines ||
-        rName == m_sBookmarks    )
+        rName == m_sBookmarks ||
+        rName == m_sDrawingObjects )
         return true;
     return false;
 }
@@ -4030,17 +4042,39 @@ Any SwXLinkNameAccessWrapper::getByName(const OUString& rName)
                 if(!m_pxDoc->GetDocShell())
                     throw RuntimeException("No document shell available");
                 SwDoc* pDoc = m_pxDoc->GetDocShell()->GetDoc();
-                const size_t nOutlineCount = pDoc->GetNodes().GetOutLineNds().size();
 
-                for (size_t i = 0; i < nOutlineCount && !bFound; ++i)
+                if (sSuffix == "|outline")
                 {
-                    const SwOutlineNodes& rOutlineNodes = pDoc->GetNodes().GetOutLineNds();
-                    const SwNumRule* pOutlRule = pDoc->GetOutlineNumRule();
-                    if(sParam == lcl_CreateOutlineString(i, rOutlineNodes, pOutlRule))
+                    const size_t nOutlineCount = pDoc->GetNodes().GetOutLineNds().size();
+
+                    for (size_t i = 0; i < nOutlineCount && !bFound; ++i)
                     {
-                        Reference< XPropertySet >  xOutline = new SwXOutlineTarget(sParam);
-                        aRet <<= xOutline;
-                        bFound = true;
+                        const SwOutlineNodes& rOutlineNodes = pDoc->GetNodes().GetOutLineNds();
+                        const SwNumRule* pOutlRule = pDoc->GetOutlineNumRule();
+                        if(sParam == lcl_CreateOutlineString(i, rOutlineNodes, pOutlRule))
+                        {
+                            Reference< XPropertySet >  xOutline = new SwXOutlineTarget(sParam);
+                            aRet <<= xOutline;
+                            bFound = true;
+                        }
+                    }
+                }
+                else if (sSuffix == "|drawingobject")
+                {
+                    SwDrawModel* pModel = pDoc->getIDocumentDrawModelAccess().GetDrawModel();
+                    if (pModel)
+                    {
+                        SdrPage* pPage = pModel->GetPage(0);
+                        for (size_t i = 0; i < pPage->GetObjCount() && !bFound; ++i)
+                        {
+                            SdrObject* pObj = pPage->GetObj(i);
+                            if (sParam == pObj->GetName())
+                            {
+                                Reference<XPropertySet> xDrawingObject = new SwXDrawingObjectTarget(sParam);
+                                aRet <<= xDrawingObject;
+                                bFound = true;
+                            }
+                        }
                     }
                 }
             }
@@ -4068,17 +4102,37 @@ Sequence< OUString > SwXLinkNameAccessWrapper::getElementNames()
     {
         if(!m_pxDoc->GetDocShell())
             throw RuntimeException("No document shell available");
-
         SwDoc* pDoc = m_pxDoc->GetDocShell()->GetDoc();
-        const SwOutlineNodes& rOutlineNodes = pDoc->GetNodes().GetOutLineNds();
-        const size_t nOutlineCount = rOutlineNodes.size();
-        aRet.realloc(nOutlineCount);
-        OUString* pResArr = aRet.getArray();
-        const SwNumRule* pOutlRule = pDoc->GetOutlineNumRule();
-        for (size_t i = 0; i < nOutlineCount; ++i)
+        if (m_sLinkSuffix == "|outline")
+        {
+            const SwOutlineNodes& rOutlineNodes = pDoc->GetNodes().GetOutLineNds();
+            const size_t nOutlineCount = rOutlineNodes.size();
+            aRet.realloc(nOutlineCount);
+            OUString* pResArr = aRet.getArray();
+            const SwNumRule* pOutlRule = pDoc->GetOutlineNumRule();
+            for (size_t i = 0; i < nOutlineCount; ++i)
+            {
+                OUString sEntry = lcl_CreateOutlineString(i, rOutlineNodes, pOutlRule) + "|outline";
+                pResArr[i] = sEntry;
+            }
+        }
+        else if (m_sLinkSuffix == "|drawingobject")
         {
-            OUString sEntry = lcl_CreateOutlineString(i, rOutlineNodes, pOutlRule) + "|outline";
-            pResArr[i] = sEntry;
+            SwDrawModel* pModel = pDoc->getIDocumentDrawModelAccess().GetDrawModel();
+            if(pModel)
+            {
+                SdrPage* pPage = pModel->GetPage(0);
+                const size_t nObjCount = pPage->GetObjCount();
+                aRet.realloc(nObjCount);
+                OUString* pResArr = aRet.getArray();
+                auto j = 0;
+                for (size_t i = 0; i < nObjCount; ++i)
+                {
+                    SdrObject* pObj = pPage->GetObj(i);
+                    if (!pObj->GetName().isEmpty())
+                        pResArr[j++] = pObj->GetName() + "|drawingobject";
+                }
+            }
         }
     }
     else
@@ -4107,16 +4161,33 @@ sal_Bool SwXLinkNameAccessWrapper::hasByName(const OUString& rName)
                 if(!m_pxDoc->GetDocShell())
                     throw RuntimeException("No document shell available");
                 SwDoc* pDoc = m_pxDoc->GetDocShell()->GetDoc();
-                const size_t nOutlineCount = pDoc->GetNodes().GetOutLineNds().size();
+                if (m_sLinkSuffix == "|outline")
+                {
+                    const size_t nOutlineCount = pDoc->GetNodes().GetOutLineNds().size();
 
-                for (size_t i = 0; i < nOutlineCount && !bRet; ++i)
+                    for (size_t i = 0; i < nOutlineCount && !bRet; ++i)
+                    {
+                        const SwOutlineNodes& rOutlineNodes = pDoc->GetNodes().GetOutLineNds();
+                        const SwNumRule* pOutlRule = pDoc->GetOutlineNumRule();
+                        if(sParam ==
+                            lcl_CreateOutlineString(i, rOutlineNodes, pOutlRule))
+                        {
+                            bRet = true;
+                        }
+                    }
+                }
+                else if (m_sLinkSuffix == "|drawingobject")
                 {
-                    const SwOutlineNodes& rOutlineNodes = pDoc->GetNodes().GetOutLineNds();
-                    const SwNumRule* pOutlRule = pDoc->GetOutlineNumRule();
-                    if(sParam ==
-                        lcl_CreateOutlineString(i, rOutlineNodes, pOutlRule))
+                    SwDrawModel* pModel = pDoc->getIDocumentDrawModelAccess().GetDrawModel();
+                    if (pModel)
                     {
-                        bRet = true;
+                        SdrPage* pPage = pModel->GetPage(0);
+                        const size_t nObjCount = pPage->GetObjCount();
+                        for (size_t i = 0; i < nObjCount && !bRet; ++i)
+                        {
+                            if (sParam == pPage->GetObj(i)->GetName())
+                                bRet = true;
+                        }
                     }
                 }
             }
@@ -4182,6 +4253,8 @@ static Any lcl_GetDisplayBitmap(const OUString& _sLinkSuffix)
         sImgId = RID_BMP_NAVI_BOOKMARK;
     else if(sLinkSuffix == "region")
         sImgId = RID_BMP_NAVI_REGION;
+    else if(sLinkSuffix == "drawingobject")
+        sImgId = RID_BMP_NAVI_DRAWOBJECT;
 
     if (!sImgId.isEmpty())
     {
@@ -4310,6 +4383,73 @@ Sequence< OUString > SwXOutlineTarget::getSupportedServiceNames()
     return aRet;
 }
 
+SwXDrawingObjectTarget::SwXDrawingObjectTarget(const OUString& rDrawingObjectText) :
+    m_pPropSet(aSwMapProvider.GetPropertySet(PROPERTY_MAP_LINK_TARGET)),
+    m_sDrawingObjectText(rDrawingObjectText)
+{
+}
+
+SwXDrawingObjectTarget::~SwXDrawingObjectTarget()
+{
+}
+
+Reference< XPropertySetInfo >  SwXDrawingObjectTarget::getPropertySetInfo()
+{
+    static Reference< XPropertySetInfo >  xRet = m_pPropSet->getPropertySetInfo();
+    return xRet;
+}
+
+void SwXDrawingObjectTarget::setPropertyValue(
+    const OUString& rPropertyName, const Any& /*aValue*/)
+{
+    throw UnknownPropertyException(rPropertyName);
+}
+
+Any SwXDrawingObjectTarget::getPropertyValue(const OUString& rPropertyName)
+{
+    if(rPropertyName != UNO_LINK_DISPLAY_NAME)
+        throw UnknownPropertyException(rPropertyName);
+
+    return Any(m_sDrawingObjectText);
+}
+
+void SwXDrawingObjectTarget::addPropertyChangeListener(
+    const OUString& /*PropertyName*/, const Reference< XPropertyChangeListener > & /*aListener*/)
+{
+}
+
+void SwXDrawingObjectTarget::removePropertyChangeListener(
+    const OUString& /*PropertyName*/, const Reference< XPropertyChangeListener > & /*aListener*/)
+{
+}
+
+void SwXDrawingObjectTarget::addVetoableChangeListener(
+    const OUString& /*PropertyName*/, const Reference< XVetoableChangeListener > & /*aListener*/)
+{
+}
+
+void SwXDrawingObjectTarget::removeVetoableChangeListener(
+    const OUString& /*PropertyName*/, const Reference< XVetoableChangeListener > & /*aListener*/)
+{
+}
+
+OUString SwXDrawingObjectTarget::getImplementationName()
+{
+    return "SwXDrawingObjectTarget";
+}
+
+sal_Bool SwXDrawingObjectTarget::supportsService(const OUString& ServiceName)
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+Sequence< OUString > SwXDrawingObjectTarget::getSupportedServiceNames()
+{
+    Sequence<OUString> aRet { "com.sun.star.document.LinkTarget" };
+
+    return aRet;
+}
+
 SwXDocumentPropertyHelper::SwXDocumentPropertyHelper(SwDoc& rDoc) :
 SvxUnoForbiddenCharsTable ( rDoc.getIDocumentSettingAccess().getForbiddenCharacterTable() )
 ,m_pDoc(&rDoc)
diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx
index 51a4bbd825cc..57ed667d3f98 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -4296,8 +4296,6 @@ static void lcl_AssureStdModeAtShell(SwWrtShell* pWrtShell)
 void SwContentTree::GotoContent(const SwContent* pCnt)
 {
     lcl_AssureStdModeAtShell(m_pActiveShell);
-
-    bool bSel = false;
     switch(pCnt->GetParent()->GetType())
     {
         case ContentTypeId::OUTLINE   :
@@ -4314,8 +4312,7 @@ void SwContentTree::GotoContent(const SwContent* pCnt)
         case ContentTypeId::GRAPHIC   :
         case ContentTypeId::OLE       :
         {
-            if(m_pActiveShell->GotoFly(pCnt->GetName()))
-                bSel = true;
+            m_pActiveShell->GotoFly(pCnt->GetName());
         }
         break;
         case ContentTypeId::BOOKMARK:
@@ -4336,7 +4333,6 @@ void SwContentTree::GotoContent(const SwContent* pCnt)
                 m_pActiveShell->Right( CRSR_SKIP_CHARS, true, 1, false);
                 m_pActiveShell->SwCursorShell::SelectTextAttr( RES_TXTATR_INETFMT, true );
             }
-
         }
         break;
         case ContentTypeId::REFERENCE:
@@ -4356,47 +4352,26 @@ void SwContentTree::GotoContent(const SwContent* pCnt)
         break;
         case ContentTypeId::DRAWOBJECT:
         {
-            SwPosition aPos = *m_pActiveShell->GetCursor()->GetPoint();
-            SdrView* pDrawView = m_pActiveShell->GetDrawView();
-            if (pDrawView)
-            {
-                pDrawView->SdrEndTextEdit();
-                pDrawView->UnmarkAll();
-                SwDrawModel* _pModel = m_pActiveShell->getIDocumentDrawModelAccess().GetDrawModel();
-                SdrPage* pPage = _pModel->GetPage(0);
-                const size_t nCount = pPage->GetObjCount();
-                for( size_t i=0; i<nCount; ++i )
-                {
-                    SdrObject* pTemp = pPage->GetObj(i);
-                    if (pTemp->GetName() == pCnt->GetName())
-                    {
-                        SdrPageView* pPV = pDrawView->GetSdrPageView();
-                        if( pPV )
-                        {
-                            pDrawView->MarkObj( pTemp, pPV );
-                        }
-                    }
-                }
-                m_pActiveShell->GetNavigationMgr().addEntry(aPos);
-                m_pActiveShell->EnterStdMode();
-                bSel = true;
-            }
+            m_pActiveShell->GotoDrawingObject(pCnt->GetName());
         }
         break;
         default: break;
     }
-    if(bSel)
+
+    if (m_pActiveShell->IsFrameSelected() || m_pActiveShell->IsObjSelected())
     {
         m_pActiveShell->HideCursor();
         m_pActiveShell->EnterSelFrameMode();
     }
+
     SwView& rView = m_pActiveShell->GetView();
     rView.StopShellTimer();
     rView.GetPostItMgr()->SetActiveSidebarWin(nullptr);
     rView.GetEditWin().GrabFocus();
 
-    // force scroll to cursor position when navigating to inactive document
-    if(!bSel)
+    // assure visible view area is at cursor position
+    if (!m_pActiveShell->IsCursorVisible() && !m_pActiveShell->IsFrameSelected() &&
+            !m_pActiveShell->IsObjSelected())
     {
         Point rPoint = m_pActiveShell->GetCursorDocPos();
         rPoint.setX(0);
diff --git a/sw/source/uibase/wrtsh/move.cxx b/sw/source/uibase/wrtsh/move.cxx
index bd076831167d..c1873967fcb6 100644
--- a/sw/source/uibase/wrtsh/move.cxx
+++ b/sw/source/uibase/wrtsh/move.cxx
@@ -23,6 +23,10 @@
 #include <view.hxx>
 #include <viewopt.hxx>
 #include <drawbase.hxx>
+#include <IDocumentDrawModelAccess.hxx>
+#include <drawdoc.hxx>
+#include <svx/svdpage.hxx>
+#include <svx/svdview.hxx>
 
 /**
    Always:
@@ -624,6 +628,39 @@ bool SwWrtShell::GotoOutline( const OUString& rName )
     return bRet;
 }
 
+bool SwWrtShell::GotoDrawingObject(std::u16string_view rName)
+{
+    SwPosition aPos = *GetCursor()->GetPoint();
+    bool bRet = false;
+    SdrView* pDrawView = GetDrawView();
+    if (pDrawView)
+    {
+        pDrawView->SdrEndTextEdit();
+        pDrawView->UnmarkAll();
+        SdrPage* pPage = getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0);
+        const size_t nCount = pPage->GetObjCount();
+        for (size_t i = 0; i < nCount; ++i)
+        {
+            SdrObject* pObj = pPage->GetObj(i);
+            if (pObj->GetName() == rName)
+            {
+                SdrPageView* pPageView = pDrawView->GetSdrPageView();
+                if(pPageView)
+                {
+                    pDrawView->MarkObj(pObj, pPageView);
+                    m_aNavigationMgr.addEntry(aPos);
+                    EnterStdMode();
+                    HideCursor();
+                    EnterSelFrameMode();
+                    bRet = true;
+                }
+                break;
+            }
+        }
+    }
+    return bRet;
+}
+
 bool SwWrtShell::GotoRegion( std::u16string_view rName )
 {
     SwPosition aPos = *GetCursor()->GetPoint();


More information about the Libreoffice-commits mailing list