Blob Blame History Raw
From 0eab7dfc71e61c75d5c07093a95c64d05bc2f0c1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Wed, 27 May 2020 17:11:34 +0100
Subject: [PATCH] Resolves: tdf#133411 drop CONTENT_FLOWS_TO from dialog to
 search results
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

in the document, looks like only the calc one actually works, and when
it works on large quantities of results calc grinds to a complete halt

This was introduced with:

commit b41332475783c31136673fb44cf4c411bb0148f8
Date:   Mon Dec 2 15:54:29 2013 +0000

    Integrate branch of IAccessible2

and has been a problem on and off with calc's potentially ~infinite grid

There is the on-by-default search results dialog in calc (which has a limit on
how many it shows) which provides an alternative route to iterate through the
results

Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95006
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
(cherry picked from commit 0b94169d820482434dc98a37c3c1633ca46fd0dc)

Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95014
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit f753baddc057a3bf4881ac78a15cd11fa847ee28)

Change-Id: I2685e480d2d15220be0bddbc83baad3992e7d5d1
---
 include/comphelper/accflowenum.hxx            |  34 ----
 include/svx/srchdlg.hxx                       |   5 -
 include/vcl/weld.hxx                          |   5 -
 include/vcl/window.hxx                        |   4 -
 .../ui/Accessibility/AccessibleDocument.cxx   | 154 ------------------
 sc/source/ui/inc/AccessibleDocument.hxx       |   7 +-
 sc/source/ui/view/tabvwshe.cxx                |  40 +----
 sd/IwyuFilter_sd.yaml                         |   1 -
 .../AccessibleDocumentViewBase.cxx            |   9 -
 .../AccessibleDrawDocumentView.cxx            | 151 -----------------
 .../ui/inc/AccessibleDocumentViewBase.hxx     |   7 +-
 .../ui/inc/AccessibleDrawDocumentView.hxx     |   6 -
 sd/source/ui/view/Outliner.cxx                |  11 --
 svx/source/dialog/srchdlg.cxx                 |  57 -------
 sw/source/core/access/accdoc.cxx              | 121 --------------
 sw/source/core/access/accdoc.hxx              |   8 +-
 sw/source/uibase/uiview/viewsrch.cxx          |  38 -----
 .../source/awt/vclxaccessiblecomponent.cxx    |   3 -
 vcl/inc/window.h                              |   1 -
 vcl/source/app/salvtables.cxx                 |  10 --
 vcl/source/window/window2.cxx                 |  15 --
 vcl/unx/gtk3/gtk3gtkinst.cxx                  |  29 +---
 22 files changed, 5 insertions(+), 711 deletions(-)
 delete mode 100644 include/comphelper/accflowenum.hxx

diff --git a/include/comphelper/accflowenum.hxx b/include/comphelper/accflowenum.hxx
deleted file mode 100644
index fc6b7ea2d8ec..000000000000
--- a/include/comphelper/accflowenum.hxx
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_COMPHELPER_ACCFLOWENUM_HXX
-#define INCLUDED_COMPHELPER_ACCFLOWENUM_HXX
-
-#include <sal/types.h>
-
-enum AccessibilityFlowTo : sal_Int32
-{
-    FORSPELLCHECKFLOWTO = 1,
-    FORFINDREPLACEFLOWTO_ITEM = 2,
-    FORFINDREPLACEFLOWTO_RANGE = 3
-};
-
-#endif // INCLUDED_COMPHELPER_ACCFLOWENUM_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svx/srchdlg.hxx b/include/svx/srchdlg.hxx
index 01f5b07663d5..3d1be499c399 100644
--- a/include/svx/srchdlg.hxx
+++ b/include/svx/srchdlg.hxx
@@ -126,16 +126,11 @@ public:
 
     TransliterationFlags        GetTransliterationFlags() const;
 
-    void SetDocWin(vcl::Window* pDocWin, SvxSearchCmd eCommand);
-    void SetSrchFlag( bool bSuccess ) { mbSuccess = bSuccess; }
-    bool GetSrchFlag() { return mbSuccess; }
     void            SetSaveToModule(bool b);
 
     void SetSearchLabel(const OUString& rStr);
 
 private:
-    bool            mbSuccess;
-
     SfxBindings&    rBindings;
     bool            bWriter;
     bool            bSearch;
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index b6c4c22d502c..bd76a44c846e 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -147,11 +147,6 @@ public:
     virtual void set_accessible_relation_labeled_by(weld::Widget* pLabel) = 0;
     virtual void set_accessible_relation_label_for(weld::Widget* pLabeled) = 0;
 
-    virtual void
-    add_extra_accessible_relation(const css::accessibility::AccessibleRelation& rRelation)
-        = 0;
-    virtual void clear_extra_accessible_relations() = 0;
-
     virtual void set_tooltip_text(const OUString& rTip) = 0;
     virtual OUString get_tooltip_text() const = 0;
 
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 3b28f9a503a0..a4965b2acab8 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -1253,10 +1253,6 @@ public:
     void                                SetAccessibleRelationMemberOf( vcl::Window* pMemberOf );
     vcl::Window*                        GetAccessibleRelationMemberOf() const;
 
-    void                                AddExtraAccessibleRelation(const css::accessibility::AccessibleRelation &rRelation);
-    const std::vector<css::accessibility::AccessibleRelation>& GetExtraAccessibleRelations() const;
-    void                                ClearExtraAccessibleRelations();
-
     // to avoid sending accessibility events in cases like closing dialogs
     // by default checks complete parent path
     bool                                IsAccessibilityEventsSuppressed( bool bTraverseParentPath = true );
diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index a63e419754be..8273d78dc8d3 100644
--- a/sc/source/ui/Accessibility/AccessibleDocument.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx
@@ -52,7 +52,6 @@
 #include <svx/AccessibleShapeTreeInfo.hxx>
 #include <svx/AccessibleShapeInfo.hxx>
 #include <svx/IAccessibleParent.hxx>
-#include <comphelper/accflowenum.hxx>
 #include <comphelper/sequence.hxx>
 #include <sfx2/viewfrm.hxx>
 #include <sfx2/docfile.hxx>
@@ -1607,13 +1606,6 @@ void SAL_CALL ScAccessibleDocument::selectionChanged( const lang::EventObject& /
 
 uno::Any SAL_CALL ScAccessibleDocument::queryInterface( uno::Type const & rType )
 {
-    uno::Any aAnyTmp;
-    if(rType == cppu::UnoType<XAccessibleGetAccFlowTo>::get())
-    {
-         css::uno::Reference<XAccessibleGetAccFlowTo> AccFromXShape = this;
-         aAnyTmp <<= AccFromXShape;
-         return aAnyTmp;
-    }
     uno::Any aAny (ScAccessibleDocumentImpl::queryInterface(rType));
     return aAny.hasValue() ? aAny : ScAccessibleContextBase::queryInterface(rType);
 }
@@ -2232,152 +2224,6 @@ uno::Any SAL_CALL ScAccessibleDocument::getExtendedAttributes()
     return anyAtrribute;
 }
 
-css::uno::Sequence< css::uno::Any > ScAccessibleDocument::GetScAccFlowToSequence()
-{
-    if ( getAccessibleChildCount() )
-    {
-        uno::Reference < XAccessible > xSCTableAcc = getAccessibleChild( 0 ); // table
-        if ( xSCTableAcc.is() )
-        {
-            uno::Reference < XAccessibleSelection > xAccSelection( xSCTableAcc, uno::UNO_QUERY );
-            sal_Int32 nSelCount = xAccSelection->getSelectedAccessibleChildCount();
-            if( nSelCount )
-            {
-                uno::Reference < XAccessible > xSel = xAccSelection->getSelectedAccessibleChild( 0 ); // selected cell
-                if ( xSel.is() )
-                {
-                    uno::Reference < XAccessibleContext > xSelContext( xSel->getAccessibleContext() );
-                    if ( xSelContext.is() )
-                    {
-                        if ( xSelContext->getAccessibleRole() == AccessibleRole::TABLE_CELL )
-                        {
-                            sal_Int32 nParaCount = 0;
-                            uno::Sequence <uno::Any> aSequence(nSelCount);
-                            for ( sal_Int32 i = 0; i < nSelCount; i++ )
-                            {
-                                xSel = xAccSelection->getSelectedAccessibleChild( i )   ;
-                                if ( xSel.is() )
-                                {
-                                    xSelContext = xSel->getAccessibleContext();
-                                    if ( xSelContext.is() )
-                                    {
-                                        if ( xSelContext->getAccessibleRole() == AccessibleRole::TABLE_CELL )
-                                        {
-                                            aSequence[nParaCount] <<= xSel;
-                                            nParaCount++;
-                                        }
-                                    }
-                                }
-                            }
-                            return aSequence;
-                        }
-                    }
-                }
-            }
-        }
-    }
-    uno::Sequence <uno::Any> aEmpty;
-    return aEmpty;
-}
-
-css::uno::Sequence< css::uno::Any >
-        SAL_CALL ScAccessibleDocument::getAccFlowTo(const css::uno::Any& rAny, sal_Int32 nType)
-{
-    SolarMutexGuard g;
-
-    if (nType == AccessibilityFlowTo::FORSPELLCHECKFLOWTO)
-    {
-        uno::Reference< css::drawing::XShape > xShape;
-        rAny >>= xShape;
-        if ( xShape.is() )
-        {
-            uno::Reference < XAccessible > xAcc = mpChildrenShapes->GetAccessibleCaption(xShape);
-            uno::Reference < XAccessibleSelection > xAccSelection( xAcc, uno::UNO_QUERY );
-            if ( xAccSelection.is() )
-            {
-                if ( xAccSelection->getSelectedAccessibleChildCount() )
-                {
-                    uno::Reference < XAccessible > xSel = xAccSelection->getSelectedAccessibleChild( 0 );
-                    if ( xSel.is() )
-                    {
-                        uno::Reference < XAccessibleContext > xSelContext( xSel->getAccessibleContext() );
-                        if ( xSelContext.is() )
-                        {
-                            //if in sw we find the selected paragraph here
-                            if ( xSelContext->getAccessibleRole() == AccessibleRole::PARAGRAPH )
-                            {
-                                uno::Sequence<uno::Any> aRet( 1 );
-                                aRet[0] <<= xSel;
-                                return aRet;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        else
-        {
-            if ( getSelectedAccessibleChildCount() )
-            {
-                uno::Reference < XAccessible > xSel = getSelectedAccessibleChild( 0 );
-                if ( xSel.is() )
-                {
-                    uno::Reference < XAccessibleContext > xSelContext( xSel->getAccessibleContext() );
-                    if ( xSelContext.is() )
-                    {
-                        uno::Reference < XAccessibleSelection > xAccChildSelection( xSel, uno::UNO_QUERY );
-                        if ( xAccChildSelection.is() )
-                        {
-                            if ( xAccChildSelection->getSelectedAccessibleChildCount() )
-                            {
-                                uno::Reference < XAccessible > xChildSel = xAccChildSelection->getSelectedAccessibleChild( 0 );
-                                if ( xChildSel.is() )
-                                {
-                                    uno::Reference < css::accessibility::XAccessibleContext > xChildSelContext( xChildSel->getAccessibleContext() );
-                                    if ( xChildSelContext.is() &&
-                                        xChildSelContext->getAccessibleRole() == css::accessibility::AccessibleRole::PARAGRAPH )
-                                    {
-                                        uno::Sequence<uno::Any> aRet( 1 );
-                                        aRet[0] <<= xChildSel;
-                                        return aRet;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-    else if (nType == AccessibilityFlowTo::FORFINDREPLACEFLOWTO_ITEM || nType == AccessibilityFlowTo::FORFINDREPLACEFLOWTO_RANGE)
-    {
-        bool bSuccess(false);
-        rAny >>= bSuccess;
-        if ( bSuccess )
-        {
-            if (nType == AccessibilityFlowTo::FORFINDREPLACEFLOWTO_RANGE)
-            {
-                uno::Sequence< uno::Any> aSeq = GetScAccFlowToSequence();
-                if ( aSeq.hasElements() )
-                {
-                    return aSeq;
-                }
-            }
-
-            if( mpAccessibleSpreadsheet.is() )
-            {
-                uno::Reference < XAccessible > xFindCellAcc = mpAccessibleSpreadsheet->GetActiveCell();
-                // add xFindCellAcc to the return the Sequence
-                uno::Sequence< uno::Any> aSeq2(1);
-                aSeq2[0] <<= xFindCellAcc;
-                return aSeq2;
-            }
-        }
-    }
-    uno::Sequence< uno::Any> aEmpty;
-    return aEmpty;
-}
-
 sal_Int32 SAL_CALL ScAccessibleDocument::getForeground(  )
 {
     return sal_Int32(COL_BLACK);
diff --git a/sc/source/ui/inc/AccessibleDocument.hxx b/sc/source/ui/inc/AccessibleDocument.hxx
index c3441465121c..e2598051974c 100644
--- a/sc/source/ui/inc/AccessibleDocument.hxx
+++ b/sc/source/ui/inc/AccessibleDocument.hxx
@@ -26,7 +26,6 @@
 #include <com/sun/star/view/XSelectionChangeListener.hpp>
 #include <cppuhelper/implbase3.hxx>
 #include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp>
-#include <com/sun/star/accessibility/XAccessibleGetAccFlowTo.hpp>
 #include <svx/IAccessibleViewForwarder.hxx>
 
 class ScTabViewShell;
@@ -52,7 +51,6 @@ typedef cppu::ImplHelper3< css::accessibility::XAccessibleSelection,
 class ScAccessibleDocument
     :   public ScAccessibleDocumentBase,
         public ScAccessibleDocumentImpl,
-        public css::accessibility::XAccessibleGetAccFlowTo,
         public accessibility::IAccessibleViewForwarder
 {
 public:
@@ -257,11 +255,8 @@ private:
 public:
     ScDocument *GetDocument() const ;
     ScAddress   GetCurCellAddress() const;
-    //=====  XAccessibleGetAccFromXShape  ============================================
-    css::uno::Sequence< css::uno::Any >
-        SAL_CALL getAccFlowTo(const css::uno::Any& rAny, sal_Int32 nType) override;
 
-     virtual sal_Int32 SAL_CALL getForeground(  ) override;
+    virtual sal_Int32 SAL_CALL getForeground(  ) override;
 
     virtual sal_Int32 SAL_CALL getBackground(  ) override;
 };
diff --git a/sc/source/ui/view/tabvwshe.cxx b/sc/source/ui/view/tabvwshe.cxx
index 516cb11e3cba..23e84b6f6dfe 100644
--- a/sc/source/ui/view/tabvwshe.cxx
+++ b/sc/source/ui/view/tabvwshe.cxx
@@ -232,26 +232,7 @@ void ScTabViewShell::ExecSearch( SfxRequest& rReq )
                     const SvxSearchItem* pSearchItem = static_cast<const SvxSearchItem*>(pItem);
 
                     ScGlobal::SetSearchItem( *pSearchItem );
-                    bool bSuccess = SearchAndReplace( pSearchItem, true, rReq.IsAPI() );
-                    SfxChildWindow* pChildWindow = SfxViewFrame::Current()->GetChildWindow(
-                            SvxSearchDialogWrapper::GetChildWindowId());
-                    if (pChildWindow)
-                    {
-                        SvxSearchDialog* pSearchDlg = static_cast<SvxSearchDialog*>(pChildWindow->GetController().get());
-                        if( pSearchDlg )
-                        {
-                            ScTabView* pTabView = GetViewData().GetView();
-                            if( pTabView )
-                            {
-                                vcl::Window* pWin = pTabView->GetActiveWin();
-                                if( pWin )
-                                {
-                                    pSearchDlg->SetDocWin( pWin, pSearchItem->GetCommand() );
-                                    pSearchDlg->SetSrchFlag( bSuccess );
-                                }
-                            }
-                        }
-                    }
+                    SearchAndReplace( pSearchItem, true, rReq.IsAPI() );
                     rReq.Done();
                 }
             }
@@ -303,25 +284,6 @@ void ScTabViewShell::ExecSearch( SfxRequest& rReq )
                             rReq.IsAPI() ? SfxCallMode::API|SfxCallMode::SYNCHRON :
                                             SfxCallMode::RECORD,
                             { &aSearchItem });
-                    SfxChildWindow* pChildWindow = SfxViewFrame::Current()->GetChildWindow(
-                            SvxSearchDialogWrapper::GetChildWindowId());
-                    if (pChildWindow)
-                    {
-                        SvxSearchDialog* pSearchDlg = static_cast<SvxSearchDialog*>(pChildWindow->GetController().get());
-                        if( pSearchDlg )
-                        {
-                            ScTabView* pTabView = GetViewData().GetView();
-                            if( pTabView )
-                            {
-                                vcl::Window* pWin = pTabView->GetActiveWin();
-                                if( pWin )
-                                {
-                                    pSearchDlg->SetDocWin( pWin, aSearchItem.GetCommand() );
-                                    pSearchDlg->SetSrchFlag(false);
-                                }
-                            }
-                        }
-                    }
                 }
                 else
                 {
diff --git a/sd/IwyuFilter_sd.yaml b/sd/IwyuFilter_sd.yaml
index 930f081dd117..f1573298c194 100644
--- a/sd/IwyuFilter_sd.yaml
+++ b/sd/IwyuFilter_sd.yaml
@@ -145,7 +145,6 @@ blacklist:
     sd/source/ui/inc/AccessibleDocumentViewBase.hxx:
     # base class has to be a complete type
     - com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp
-    - com/sun/star/accessibility/XAccessibleGetAccFlowTo.hpp
     - com/sun/star/awt/XFocusListener.hpp
     - com/sun/star/awt/XWindowListener.hpp
     - com/sun/star/beans/XPropertyChangeListener.hpp
diff --git a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
index c271e70718cb..60cff2911b8b 100644
--- a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
+++ b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
@@ -381,7 +381,6 @@ uno::Any SAL_CALL
             static_cast<awt::XWindowListener*>(this),
             static_cast<awt::XFocusListener*>(this)
            ,static_cast<XAccessibleExtendedAttributes*>(this)
-           ,static_cast<XAccessibleGetAccFlowTo*>(this)
             );
     return aReturn;
 }
@@ -765,14 +764,6 @@ uno::Any SAL_CALL AccessibleDocumentViewBase::getExtendedAttributes()
     return anyAtrribute;
 }
 
-css::uno::Sequence< css::uno::Any >
-        SAL_CALL AccessibleDocumentViewBase::getAccFlowTo(const css::uno::Any&, sal_Int32 )
-{
-    css::uno::Sequence< uno::Any> aRet;
-
-    return aRet;
-}
-
 sal_Int32 SAL_CALL AccessibleDocumentViewBase::getForeground(  )
 {
     return sal_Int32(COL_BLACK);
diff --git a/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx b/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
index e178d93e7baf..6b644bc439d7 100644
--- a/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
+++ b/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
@@ -30,7 +30,6 @@
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/view/XSelectionSupplier.hpp>
 #include <cppuhelper/queryinterface.hxx>
-#include <comphelper/accflowenum.hxx>
 #include <comphelper/processfactory.hxx>
 #include <sal/log.hxx>
 #include <tools/debug.hxx>
@@ -739,156 +738,6 @@ void SAL_CALL AccessibleDrawDocumentView::disposing()
     AccessibleDocumentViewBase::disposing ();
 }
 
-css::uno::Sequence< css::uno::Any >
-        SAL_CALL AccessibleDrawDocumentView::getAccFlowTo(const css::uno::Any& rAny, sal_Int32 nType)
-{
-    SolarMutexGuard g;
-
-    if (nType == AccessibilityFlowTo::FORSPELLCHECKFLOWTO)
-    {
-        uno::Reference< css::drawing::XShape > xShape;
-        rAny >>= xShape;
-        if ( mpChildrenManager && xShape.is() )
-        {
-            uno::Reference < XAccessible > xAcc = mpChildrenManager->GetChild(xShape);
-            uno::Reference < XAccessibleSelection > xAccSelection( xAcc, uno::UNO_QUERY );
-            if ( xAccSelection.is() )
-            {
-                if ( xAccSelection->getSelectedAccessibleChildCount() )
-                {
-                    uno::Reference < XAccessible > xSel = xAccSelection->getSelectedAccessibleChild( 0 );
-                    if ( xSel.is() )
-                    {
-                        uno::Reference < XAccessibleContext > xSelContext( xSel->getAccessibleContext() );
-                        if ( xSelContext.is() )
-                        {
-                            //if in sw we find the selected paragraph here
-                            if ( xSelContext->getAccessibleRole() == AccessibleRole::PARAGRAPH )
-                            {
-                                uno::Sequence<uno::Any> aRet( 1 );
-                                aRet[0] <<= xSel;
-                                return aRet;
-                            }
-                        }
-                    }
-                }
-            }
-            uno::Reference<XAccessible> xPara = GetSelAccContextInTable();
-            if ( xPara.is() )
-            {
-                uno::Sequence<uno::Any> aRet( 1 );
-                aRet[0] <<= xPara;
-                return aRet;
-            }
-        }
-        else
-        {
-            goto Rt;
-        }
-    }
-    else if (nType == AccessibilityFlowTo::FORFINDREPLACEFLOWTO_ITEM || nType == AccessibilityFlowTo::FORFINDREPLACEFLOWTO_RANGE)
-    {
-        sal_Int32 nChildCount = getSelectedAccessibleChildCount();
-        if ( nChildCount )
-        {
-            uno::Reference < XAccessible > xSel = getSelectedAccessibleChild( 0 );
-            if ( xSel.is() )
-            {
-                uno::Reference < XAccessibleSelection > xAccChildSelection( xSel, uno::UNO_QUERY );
-                if ( xAccChildSelection.is() )
-                {
-                    if ( xAccChildSelection->getSelectedAccessibleChildCount() )
-                    {
-                        uno::Reference < XAccessible > xChildSel = xAccChildSelection->getSelectedAccessibleChild( 0 );
-                        if ( xChildSel.is() )
-                        {
-                            uno::Reference < XAccessibleContext > xChildSelContext( xChildSel->getAccessibleContext() );
-                            if ( xChildSelContext.is() &&
-                                xChildSelContext->getAccessibleRole() == AccessibleRole::PARAGRAPH )
-                            {
-                                uno::Sequence<uno::Any> aRet( 1 );
-                                aRet[0] <<= xChildSel;
-                                return aRet;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        else
-        {
-            uno::Reference<XAccessible> xPara = GetSelAccContextInTable();
-            if ( xPara.is() )
-            {
-                uno::Sequence<uno::Any> aRet( 1 );
-                aRet[0] <<= xPara;
-                return aRet;
-            }
-        }
-    }
-
-Rt:
-    css::uno::Sequence< uno::Any> aRet;
-    return aRet;
-}
-uno::Reference<XAccessible> AccessibleDrawDocumentView::GetSelAccContextInTable()
-{
-    uno::Reference<XAccessible> xRet;
-    sal_Int32 nCount = mpChildrenManager ? mpChildrenManager->GetChildCount() : 0;
-    if ( nCount )
-    {
-        for ( sal_Int32 i = 0; i < nCount; i++ )
-        {
-            try
-            {
-                uno::Reference<XAccessible> xObj = mpChildrenManager->GetChild(i);
-                if ( xObj.is() )
-                {
-                    uno::Reference<XAccessibleContext> xObjContext( xObj, uno::UNO_QUERY );
-                    if ( xObjContext.is() && xObjContext->getAccessibleRole() == AccessibleRole::TABLE )
-                    {
-                        uno::Reference<XAccessibleSelection> xObjSelection( xObj, uno::UNO_QUERY );
-                        if ( xObjSelection.is() && xObjSelection->getSelectedAccessibleChildCount() )
-                        {
-                            uno::Reference<XAccessible> xCell = xObjSelection->getSelectedAccessibleChild(0);
-                            if ( xCell.is() )
-                            {
-                                uno::Reference<XAccessibleSelection> xCellSel( xCell, uno::UNO_QUERY );
-                                if ( xCellSel.is() && xCellSel->getSelectedAccessibleChildCount() )
-                                {
-                                    uno::Reference<XAccessible> xPara = xCellSel->getSelectedAccessibleChild( 0 );
-                                    if ( xPara.is() )
-                                    {
-                                        uno::Reference<XAccessibleContext> xParaContext( xPara, uno::UNO_QUERY );
-                                        if ( xParaContext.is() &&
-                                            xParaContext->getAccessibleRole() == AccessibleRole::PARAGRAPH )
-                                        {
-                                            xRet = xPara;
-                                            return xRet;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            catch (const lang::IndexOutOfBoundsException&)
-            {
-                uno::Reference<XAccessible> xEmpty;
-                return xEmpty;
-            }
-            catch (const uno::RuntimeException&)
-            {
-                uno::Reference<XAccessible> xEmpty;
-                return xEmpty;
-            }
-        }
-    }
-
-    return xRet;
-}
-
 void AccessibleDrawDocumentView::UpdateAccessibleName()
 {
     OUString sNewName (CreateAccessibleName());
diff --git a/sd/source/ui/inc/AccessibleDocumentViewBase.hxx b/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
index ee2acf119ce4..b29cc9533757 100644
--- a/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
+++ b/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
@@ -33,7 +33,6 @@
 #include <tools/link.hxx>
 
 #include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp>
-#include <com/sun/star/accessibility/XAccessibleGetAccFlowTo.hpp>
 
 #include "Window.hxx"
 
@@ -87,8 +86,7 @@ class AccessibleDocumentViewBase
         public css::beans::XPropertyChangeListener,
         public css::awt::XWindowListener,
         public css::awt::XFocusListener,
-        public css::accessibility::XAccessibleExtendedAttributes,
-        public css::accessibility::XAccessibleGetAccFlowTo
+        public css::accessibility::XAccessibleExtendedAttributes
 {
 public:
     //=====  internal  ========================================================
@@ -313,9 +311,6 @@ protected:
     */
     void SetAccessibleOLEObject (
         const css::uno::Reference<css::accessibility::XAccessible>& xOLEObject);
-    //=====  XAccessibleGetAccFromXShape  ============================================
-    css::uno::Sequence< css::uno::Any >
-        SAL_CALL getAccFlowTo(const css::uno::Any& rAny, sal_Int32 nType) override;
 
 public:
     void SwitchViewActivated() { Activated(); }
diff --git a/sd/source/ui/inc/AccessibleDrawDocumentView.hxx b/sd/source/ui/inc/AccessibleDrawDocumentView.hxx
index fd8b42f7161f..15097459bf76 100644
--- a/sd/source/ui/inc/AccessibleDrawDocumentView.hxx
+++ b/sd/source/ui/inc/AccessibleDrawDocumentView.hxx
@@ -158,12 +158,6 @@ private:
 
     virtual void impl_dispose() override;
 
-    //=====  XAccessibleGetAccFromXShape  ============================================
-    css::uno::Sequence< css::uno::Any >
-        SAL_CALL getAccFlowTo(const css::uno::Any& rAny, sal_Int32 nType) override;
-    css::uno::Reference< css::accessibility::XAccessible >
-        GetSelAccContextInTable();
-
     void UpdateAccessibleName();
 };
 
diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx
index f2094296fa0f..71e4391e3d7a 100644
--- a/sd/source/ui/view/Outliner.cxx
+++ b/sd/source/ui/view/Outliner.cxx
@@ -501,17 +501,6 @@ bool SdOutliner::StartSearchAndReplace (const SvxSearchItem* pSearchItem)
             }
             mnStartPageIndex = sal_uInt16(-1);
         }
-
-        SfxChildWindow *pChildWin =
-            SfxViewFrame::Current()->GetChildWindow(
-            SvxSearchDialogWrapper::GetChildWindowId());
-        if (pChildWin)
-        {
-            SvxSearchDialog* pSearchDlg =
-                static_cast<SvxSearchDialog*>(pChildWin->GetController().get());
-            pSearchDlg->SetDocWin( pViewShell->GetActiveWindow(), nCommand );
-            pSearchDlg->SetSrchFlag(false);
-        }
     }
     else
         mpDrawDocument->GetDocSh()->SetWaitCursor( false );
diff --git a/svx/source/dialog/srchdlg.cxx b/svx/source/dialog/srchdlg.cxx
index 445bc318718b..7501bcb6f9fd 100644
--- a/svx/source/dialog/srchdlg.cxx
+++ b/svx/source/dialog/srchdlg.cxx
@@ -36,9 +36,6 @@
 #include <svl/cjkoptions.hxx>
 #include <svl/ctloptions.hxx>
 #include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/accessibility/AccessibleRelation.hpp>
-#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
-#include <com/sun/star/accessibility/XAccessibleGetAccFlowTo.hpp>
 #include <com/sun/star/container/XNameAccess.hpp>
 #include <com/sun/star/frame/XDispatch.hpp>
 #include <com/sun/star/frame/XDispatchProvider.hpp>
@@ -48,7 +45,6 @@
 #include <com/sun/star/configuration/theDefaultProvider.hpp>
 #include <com/sun/star/frame/ModuleManager.hpp>
 #include <com/sun/star/ui/XUIElement.hpp>
-#include <comphelper/accflowenum.hxx>
 #include <comphelper/processfactory.hxx>
 #include <comphelper/scopeguard.hxx>
 #include <svl/itempool.hxx>
@@ -263,7 +259,6 @@ void SearchAttrItemList::Remove(size_t nPos)
 SvxSearchDialog::SvxSearchDialog(weld::Window* pParent, SfxChildWindow* pChildWin, SfxBindings& rBind)
     : SfxModelessDialogController(&rBind, pChildWin, pParent,
                                   "svx/ui/findreplacedialog.ui", "FindReplaceDialog")
-    , mbSuccess(false)
     , rBindings(rBind)
     , bWriter(false)
     , bSearch(true)
@@ -2292,58 +2287,6 @@ void SvxSearchDialog::SaveToModule_Impl()
     rBindings.GetDispatcher()->Execute( SID_SEARCH_ITEM, SfxCallMode::SLOT, ppArgs );
 }
 
-void SvxSearchDialog::SetDocWin(vcl::Window* pDocWin, SvxSearchCmd eCommand)
-{
-    m_xDialog->clear_extra_accessible_relations();
-
-    if (!pDocWin)
-        return;
-
-    Reference<css::accessibility::XAccessible> xDocAcc = pDocWin->GetAccessible();
-    if (!xDocAcc.is())
-    {
-        return;
-    }
-    Reference<css::accessibility::XAccessibleGetAccFlowTo> xGetAccFlowTo(xDocAcc, UNO_QUERY);
-    if (!xGetAccFlowTo.is())
-    {
-        return;
-    }
-
-    /* tdf#128313 FlowTo tries to set an a11y relation between the search dialog
-       and its results. But for "find/replace" within a calc column we don't
-       want to return the entire column as the result, we want the current cell.
-
-       But with search/all we do want the new multi-cellselection as the result.
-    */
-    AccessibilityFlowTo eFlowTo(AccessibilityFlowTo::FORFINDREPLACEFLOWTO_ITEM);
-    switch (eCommand)
-    {
-        case SvxSearchCmd::FIND:
-        case SvxSearchCmd::REPLACE:
-            eFlowTo = AccessibilityFlowTo::FORFINDREPLACEFLOWTO_ITEM;
-            break;
-        case SvxSearchCmd::FIND_ALL:
-        case SvxSearchCmd::REPLACE_ALL:
-            eFlowTo = AccessibilityFlowTo::FORFINDREPLACEFLOWTO_RANGE;
-            break;
-    }
-    uno::Sequence<uno::Any> aAnySeq = xGetAccFlowTo->getAccFlowTo(Any(GetSrchFlag()), eFlowTo);
-
-    sal_Int32 nLen = aAnySeq.getLength();
-    if (nLen)
-    {
-        uno::Sequence<uno::Reference<uno::XInterface>> aSequence(nLen);
-        for (sal_Int32 i = 0; i < nLen; ++i)
-        {
-            uno::Reference < css::accessibility::XAccessible > xAcc;
-            aAnySeq[i] >>= xAcc;
-            aSequence[i] = xAcc;
-        }
-        m_xDialog->add_extra_accessible_relation(css::accessibility::AccessibleRelation(css::accessibility::AccessibleRelationType::CONTENT_FLOWS_TO, aSequence));
-    }
-}
-
 short SvxSearchDialog::executeSubDialog(VclAbstractDialog * dialog) {
     assert(!m_executingSubDialog);
     comphelper::ScopeGuard g([this] { m_executingSubDialog = false; });
diff --git a/sw/source/core/access/accdoc.cxx b/sw/source/core/access/accdoc.cxx
index 4f7f2a81a158..827e4ba0ad16 100644
--- a/sw/source/core/access/accdoc.cxx
+++ b/sw/source/core/access/accdoc.cxx
@@ -24,7 +24,6 @@
 #include <com/sun/star/accessibility/AccessibleStateType.hpp>
 #include <com/sun/star/accessibility/AccessibleEventId.hpp>
 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-#include <comphelper/accflowenum.hxx>
 #include <unotools/accessiblestatesethelper.hxx>
 #include <cppuhelper/typeprovider.hxx>
 #include <sfx2/viewsh.hxx>
@@ -459,11 +458,6 @@ uno::Any SwAccessibleDocument::queryInterface(
         uno::Reference<XAccessibleExtendedAttributes> aAttribute = this;
         aRet <<= aAttribute;
     }
-    else if(rType == cppu::UnoType<XAccessibleGetAccFlowTo>::get())
-    {
-        uno::Reference<XAccessibleGetAccFlowTo> AccFlowTo = this;
-        aRet <<= AccFlowTo;
-    }
     else
         aRet = SwAccessibleContext::queryInterface( rType );
     return aRet;
@@ -758,119 +752,4 @@ sal_Int32 SAL_CALL SwAccessibleDocument::getBackground()
     return sal_Int32(SW_MOD()->GetColorConfig().GetColorValue( ::svtools::DOCCOLOR ).nColor);
 }
 
-css::uno::Sequence< css::uno::Any >
-        SAL_CALL SwAccessibleDocument::getAccFlowTo(const css::uno::Any& rAny, sal_Int32 nType)
-{
-    SolarMutexGuard g;
-
-    SwAccessibleMap* pAccMap = GetMap();
-    if ( !pAccMap )
-    {
-        return uno::Sequence< uno::Any >();
-    }
-
-    if (nType == AccessibilityFlowTo::FORSPELLCHECKFLOWTO)
-    {
-        uno::Reference< css::drawing::XShape > xShape;
-        rAny >>= xShape;
-        if( xShape.is() )
-        {
-            SdrObject* pObj = GetSdrObjectFromXShape(xShape);
-            if( pObj )
-            {
-                uno::Reference<XAccessible> xAcc = pAccMap->GetContext(pObj, this, false);
-                uno::Reference < XAccessibleSelection > xAccSelection( xAcc, uno::UNO_QUERY );
-                if ( xAccSelection.is() )
-                {
-                    try
-                    {
-                        if ( xAccSelection->getSelectedAccessibleChildCount() )
-                        {
-                            uno::Reference < XAccessible > xSel = xAccSelection->getSelectedAccessibleChild( 0 );
-                            if ( xSel.is() )
-                            {
-                                uno::Reference < XAccessibleContext > xSelContext( xSel->getAccessibleContext() );
-                                if ( xSelContext.is() )
-                                {
-                                    //if in sw we find the selected paragraph here
-                                    if ( xSelContext->getAccessibleRole() == AccessibleRole::PARAGRAPH )
-                                    {
-                                        uno::Sequence<uno::Any> aRet( 1 );
-                                        aRet[0] <<= xSel;
-                                        return aRet;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                    catch ( const css::lang::IndexOutOfBoundsException& )
-                    {
-                        return uno::Sequence< uno::Any >();
-                    }
-                    //end of try...catch
-                }
-            }
-        }
-        else
-        {
-            uno::Reference< XAccessible > xAcc = pAccMap->GetCursorContext();
-            SwAccessibleContext *pAccImpl = static_cast< SwAccessibleContext *>( xAcc.get() );
-            if ( pAccImpl && pAccImpl->getAccessibleRole() == AccessibleRole::PARAGRAPH )
-            {
-                uno::Sequence< uno::Any > aRet(1);
-                aRet[0] <<= xAcc;
-                return aRet;
-            }
-        }
-    }
-    else if (nType == AccessibilityFlowTo::FORFINDREPLACEFLOWTO_ITEM || nType == AccessibilityFlowTo::FORFINDREPLACEFLOWTO_RANGE)
-    {
-        SwCursorShell* pCursorShell = GetCursorShell();
-        if ( pCursorShell )
-        {
-            SwPaM *_pStartCursor = pCursorShell->GetCursor(), *_pStartCursor2 = _pStartCursor;
-            std::set<SwFrame*> vFrameList;
-            do
-            {
-                if ( _pStartCursor && _pStartCursor->HasMark() )
-                {
-                    SwContentNode* pContentNode = _pStartCursor->GetContentNode();
-                    SwFrame *const pFrame = pContentNode
-                        ? pContentNode->getLayoutFrame(pCursorShell->GetLayout(), _pStartCursor->GetPoint())
-                        : nullptr;
-                    if ( pFrame )
-                    {
-                        vFrameList.insert( pFrame );
-                    }
-                }
-            }
-
-            while( _pStartCursor && ( (_pStartCursor = _pStartCursor->GetNext()) != _pStartCursor2) );
-
-            if ( !vFrameList.empty() )
-            {
-                uno::Sequence< uno::Any > aRet(vFrameList.size());
-                sal_Int32 nIndex = 0;
-                for ( const auto& rpFrame : vFrameList )
-                {
-                    uno::Reference< XAccessible > xAcc = pAccMap->GetContext(rpFrame, false);
-                    if ( xAcc.is() )
-                    {
-                        SwAccessibleContext *pAccImpl = static_cast< SwAccessibleContext *>( xAcc.get() );
-                        if ( pAccImpl && pAccImpl->getAccessibleRole() == AccessibleRole::PARAGRAPH )
-                        {
-                            aRet[nIndex] <<= xAcc;
-                        }
-                    }
-                    nIndex++;
-                }
-
-                return aRet;
-            }
-        }
-    }
-
-    return uno::Sequence< uno::Any >();
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/access/accdoc.hxx b/sw/source/core/access/accdoc.hxx
index e815ebf3682d..3dc43bc6b6eb 100644
--- a/sw/source/core/access/accdoc.hxx
+++ b/sw/source/core/access/accdoc.hxx
@@ -23,7 +23,6 @@
 #include "acccontext.hxx"
 #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
 #include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp>
-#include <com/sun/star/accessibility/XAccessibleGetAccFlowTo.hpp>
 #include "accselectionhelper.hxx"
 
 // base class for SwAccessibleDocument (in this same header file) and
@@ -92,8 +91,7 @@ public:
  */
 class SwAccessibleDocument : public SwAccessibleDocumentBase,
                              public css::accessibility::XAccessibleSelection,
-                             public css::accessibility::XAccessibleExtendedAttributes,
-                             public css::accessibility::XAccessibleGetAccFlowTo
+                             public css::accessibility::XAccessibleExtendedAttributes
 {
     // Implementation for XAccessibleSelection interface
     SwAccessibleSelectionHelper maSelectionHelper;
@@ -170,10 +168,6 @@ public:
 
     // XAccessibleComponent
     sal_Int32 SAL_CALL getBackground() override;
-
-    // XAccessibleGetAccFlowTo
-    css::uno::Sequence< css::uno::Any >
-        SAL_CALL getAccFlowTo(const css::uno::Any& rAny, sal_Int32 nType) override;
 };
 
 #endif
diff --git a/sw/source/uibase/uiview/viewsrch.cxx b/sw/source/uibase/uiview/viewsrch.cxx
index 9bc9944ca36c..2370430d712d 100644
--- a/sw/source/uibase/uiview/viewsrch.cxx
+++ b/sw/source/uibase/uiview/viewsrch.cxx
@@ -249,16 +249,6 @@ void SwView::ExecSearch(SfxRequest& rReq)
                         lcl_emitSearchResultCallbacks(s_pSrchItem, m_pWrtShell.get(), /* bHighlightAll = */ false);
                 }
                 rReq.SetReturnValue(SfxBoolItem(nSlot, bRet));
-#if HAVE_FEATURE_DESKTOP
-                {
-                    pSrchDlg = GetSearchDialog();
-                    if (pSrchDlg)
-                    {
-                        pSrchDlg->SetDocWin(m_pEditWin, eCommand);
-                        pSrchDlg->SetSrchFlag(false);
-                    }
-                }
-#endif
             }
             break;
             case SvxSearchCmd::FIND_ALL:
@@ -282,16 +272,6 @@ void SwView::ExecSearch(SfxRequest& rReq)
                 else if (comphelper::LibreOfficeKit::isActive())
                     lcl_emitSearchResultCallbacks(s_pSrchItem, m_pWrtShell.get(), /* bHighlightAll = */ true);
                 rReq.SetReturnValue(SfxBoolItem(nSlot, bRet));
-#if HAVE_FEATURE_DESKTOP
-                {
-                    pSrchDlg = GetSearchDialog();
-                    if (pSrchDlg)
-                    {
-                        pSrchDlg->SetDocWin(m_pEditWin, eCommand);
-                        pSrchDlg->SetSrchFlag(false);
-                    }
-                }
-#endif
             }
             break;
             case SvxSearchCmd::REPLACE:
@@ -340,16 +320,6 @@ void SwView::ExecSearch(SfxRequest& rReq)
                     s_pSrchItem->SetCommand( nOldCmd );
                     rReq.SetReturnValue(SfxBoolItem(nSlot, bRet));
                 }
-#if HAVE_FEATURE_DESKTOP
-                {
-                    pSrchDlg = GetSearchDialog();
-                    if (pSrchDlg)
-                    {
-                        pSrchDlg->SetDocWin(m_pEditWin, eCommand);
-                        pSrchDlg->SetSrchFlag(false);
-                    }
-                }
-#endif
                 break;
 
             case SvxSearchCmd::REPLACE_ALL:
@@ -409,14 +379,6 @@ void SwView::ExecSearch(SfxRequest& rReq)
                         SvxSearchDialogWrapper::SetSearchLabel(sText);
                     }
                 }
-#if HAVE_FEATURE_DESKTOP
-                pSrchDlg = GetSearchDialog();
-                if (pSrchDlg)
-                {
-                    pSrchDlg->SetDocWin(m_pEditWin, eCommand);
-                    pSrchDlg->SetSrchFlag(false);
-                }
-#endif
                 break;
             }
 
diff --git a/toolkit/source/awt/vclxaccessiblecomponent.cxx b/toolkit/source/awt/vclxaccessiblecomponent.cxx
index f9b55d278655..7c963e83e9b6 100644
--- a/toolkit/source/awt/vclxaccessiblecomponent.cxx
+++ b/toolkit/source/awt/vclxaccessiblecomponent.cxx
@@ -375,9 +375,6 @@ void VCLXAccessibleComponent::FillAccessibleRelationSet( utl::AccessibleRelation
             uno::Sequence< uno::Reference< uno::XInterface > > aSequence { pMemberOf->GetAccessible() };
             rRelationSet.AddRelation( accessibility::AccessibleRelation( accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
         }
-
-        for (const auto& rExtraRelation : pWindow->GetExtraAccessibleRelations())
-            rRelationSet.AddRelation(rExtraRelation);
     }
 }
 
diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index 9c3dec48a725..4502770194fa 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -280,7 +280,6 @@ public:
     css::uno::Reference< css::accessibility::XAccessible > mxAccessible;
     std::shared_ptr< VclSizeGroup > m_xSizeGroup;
     std::vector<VclPtr<FixedText>> m_aMnemonicLabels;
-    std::vector<css::accessibility::AccessibleRelation> m_aExtraAccessibleRelations;
     std::unique_ptr<ImplAccessibleInfos> mpAccessibleInfos;
     VCLXWindow*         mpVCLXWindow;
     vcl::Region              maWinRegion;            //< region to 'shape' the VCL window (frame coordinates)
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index fb5c50bd0dda..41ffa6918af5 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -510,16 +510,6 @@ public:
         m_xWidget->SetAccessibleRelationLabelFor(pAtkLabeled);
     }
 
-    virtual void add_extra_accessible_relation(const css::accessibility::AccessibleRelation &rRelation) override
-    {
-        m_xWidget->AddExtraAccessibleRelation(rRelation);
-    }
-
-    virtual void clear_extra_accessible_relations() override
-    {
-        m_xWidget->ClearExtraAccessibleRelations();
-    }
-
     virtual void set_tooltip_text(const OUString& rTip) override
     {
         m_xWidget->SetQuickHelpText(rTip);
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index a5174bb8e367..0b787c288903 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -1966,21 +1966,6 @@ const std::vector<VclPtr<FixedText> >& Window::list_mnemonic_labels() const
     return mpWindowImpl->m_aMnemonicLabels;
 }
 
-void Window::AddExtraAccessibleRelation(const css::accessibility::AccessibleRelation &rRelation)
-{
-    mpWindowImpl->m_aExtraAccessibleRelations.push_back(rRelation);
-}
-
-const std::vector<css::accessibility::AccessibleRelation>& Window::GetExtraAccessibleRelations() const
-{
-    return mpWindowImpl->m_aExtraAccessibleRelations;
-}
-
-void Window::ClearExtraAccessibleRelations()
-{
-    mpWindowImpl->m_aExtraAccessibleRelations.clear();
-}
-
 } /* namespace vcl */
 
 void DrawFocusRect(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect)
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 844a9f5a493b..9f1adaca77ed 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -1436,7 +1436,7 @@ private:
     gulong m_nDragLeaveSignalId;
 
     rtl::Reference<GtkDropTarget> m_xDropTarget;
-    std::vector<AtkRelation*> m_aExtraAtkRelations;
+    rtl::Reference<GtkDragSource> m_xDragSource;
 
     static void signalSizeAllocate(GtkWidget*, GdkRectangle* allocation, gpointer widget)
     {
@@ -1941,33 +1941,6 @@ public:
         g_object_unref(pRelationSet);
     }
 
-    virtual void add_extra_accessible_relation(const css::accessibility::AccessibleRelation &rRelation) override
-    {
-        AtkObject* pAtkObject = gtk_widget_get_accessible(m_pWidget);
-        if (!pAtkObject)
-            return;
-
-        AtkRelationSet *pRelationSet = atk_object_ref_relation_set(pAtkObject);
-        AtkRelation *pRel = atk_object_wrapper_relation_new(rRelation);
-        m_aExtraAtkRelations.push_back(pRel);
-        atk_relation_set_add(pRelationSet, pRel);
-        g_object_unref(pRel);
-        g_object_unref(pRelationSet);
-    }
-
-    virtual void clear_extra_accessible_relations() override
-    {
-        AtkObject* pAtkObject = gtk_widget_get_accessible(m_pWidget);
-        if (!pAtkObject)
-            return;
-
-        AtkRelationSet *pRelationSet = atk_object_ref_relation_set(pAtkObject);
-        for (AtkRelation* pRel : m_aExtraAtkRelations)
-            atk_relation_set_remove(pRelationSet, pRel);
-        m_aExtraAtkRelations.clear();
-        g_object_unref(pRelationSet);
-    }
-
     virtual bool get_extents_relative_to(weld::Widget& rRelative, int& x, int &y, int& width, int &height) override
     {
         //for toplevel windows this is sadly futile under wayland, so we can't tell where a dialog is in order to allow
-- 
2.25.4