offapi/com/sun/star/drawing/framework/XPane2.idl    |   12 --
 sd/Library_sdui.mk                                  |    1 
 sd/source/console/PresenterAccessibility.cxx        |   94 ++++++++------------
 sd/source/console/PresenterAccessibility.hxx        |   34 +------
 sd/source/console/PresenterController.cxx           |    3 
 sd/source/ui/framework/factories/FullScreenPane.cxx |   21 ----
 sd/source/ui/framework/factories/FullScreenPane.hxx |    3 
 sd/source/ui/framework/factories/Pane.cxx           |    9 -
 sd/source/ui/inc/framework/Pane.hxx                 |    3 
 9 files changed, 51 insertions(+), 129 deletions(-)

New commits:
commit e349d5a46f858fd742e0db8480c98c1f8c23f38e
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu May 15 20:15:32 2025 +0200
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu May 15 22:23:52 2025 +0200

    sd presenter a11y: Merge XAccessible{,Context} implementations
    
    So far, PresenterAccessible was implementing the
    XAccessible interface for the accessible object
    used by PresenterController, and it was creating
    another AccessibleObject (`mpAccessibleConsole`)
    that implemented the XAccessibleContext interface
    and was created in the call to
    PresenterController:getAccessibleContext.
    
    Stop that separation and let PresenterAccessible
    also implement the XAccessibleContext interface,
    and subclass AccessibleObject (which in turn
    subclasses OAccessibleComponentHelper).
    
    This aligns this further with what almost all
    XAccessible/XAccessibleContext implementations
    in the LO codebase do by now.
    
    Apart from that, keep the logic mostly unchanged,
    though the approach taken might be worth reconsidering
    at some point in time in the future.
    Currently, the way that announcement of the current
    slide by screen readers (explicitly analyzed with Orca
    on Linux with the gtk3 VCL plugin) works is by sending
    a dummy focus event for the accessible object for the slide
    preview of the current slide (see
    `PresenterAccessible::NotifyCurrentSlideChangepreview`)
    and then sending a name-changed event which is announced
    by Orca because the "focused object"'s accessible name
    changed. In reality, keyboard focus isn't actually on that preview
    pane, however.
    (A fair part of the UI also isn't accessible/not seen in Accerciser's
    treeview of the LO a11y hierarchy, likely due to the fact that
    custom button etc. implementations are used (see PresenterToolBar and
    PresenterToolBar::Element and subclasses) instead of existing
    vcl/weld widgets and their existing a11y implementations.)
    
    Behavior with both, Orca and Linux with the gtk3 VCL plugin
    and NVDA on Windows when switching slides in Presenter console,
    as well as what was seen in Accerciser on Linux with gtk3 or qt6
    was the same with this commit as prior to it in a quick test.
    
    Change-Id: I0a347aba18d1a4e9c499c3438bcbe2143ca78f6f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185372
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/sd/source/console/PresenterAccessibility.cxx 
b/sd/source/console/PresenterAccessibility.cxx
index 3ab2783e4734..3cacfe90eb0a 100644
--- a/sd/source/console/PresenterAccessibility.cxx
+++ b/sd/source/console/PresenterAccessibility.cxx
@@ -48,7 +48,6 @@
 #include <toolkit/helper/vclunohelper.hxx>
 #include <vcl/window.hxx>
 
-#include <algorithm>
 #include <utility>
 
 using namespace ::com::sun::star;
@@ -86,15 +85,16 @@ public:
 
 //===== PresenterAccessible ===================================================
 
-PresenterAccessible::PresenterAccessible (
-    ::rtl::Reference<PresenterController> xPresenterController,
+PresenterAccessible::PresenterAccessible(
+    const rtl::Reference<PresenterController>& xPresenterController,
     const Reference<drawing::framework::XPane>& rxMainPane)
-    : PresenterAccessibleInterfaceBase(m_aMutex),
-      mpPresenterController(std::move(xPresenterController)),
-      mxMainPane(rxMainPane)
+    : ImplInheritanceHelper(AccessibleRole::PANEL, 
SdResId(STR_A11Y_PRESENTER_CONSOLE))
+    , mpPresenterController(xPresenterController)
+    , mxMainPane(rxMainPane)
 {
-    assert(rxMainPane.is());
-    if (VclPtr<vcl::Window> pMainPaneWin = 
VCLUnoHelper::GetWindow(rxMainPane->getWindow()))
+    assert(mxMainPane.is());
+    mxMainWindow = mxMainPane->getWindow();
+    if (VclPtr<vcl::Window> pMainPaneWin = 
VCLUnoHelper::GetWindow(mxMainWindow))
     {
         pMainPaneWin->SetAccessible(this);
         mxAccessibleParent = pMainPaneWin->GetAccessibleParent();
@@ -137,9 +137,6 @@ void PresenterAccessible::UpdateAccessibilityHierarchy()
     if ( ! pPaneContainer.is())
         return;
 
-    if ( ! mpAccessibleConsole.is())
-        return;
-
     // Get the preview pane (standard or notes view) or the slide overview
     // pane.
     PresenterPaneContainer::SharedPaneDescriptor 
pPreviewPane(GetPreviewPane());
@@ -174,14 +171,11 @@ void PresenterAccessible::UpdateAccessibilityHierarchy (
     const Reference<awt::XWindow>& rxNotesBorderWindow,
     const std::shared_ptr<PresenterTextView>& rpNotesTextView)
 {
-    if ( ! mpAccessibleConsole.is())
-        return;
-
     if (mxPreviewContentWindow != rxPreviewContentWindow)
     {
         if (mpAccessiblePreview.is())
         {
-            mpAccessibleConsole->RemoveChild(mpAccessiblePreview);
+            RemoveChild(mpAccessiblePreview);
             mpAccessiblePreview->dispose();
             mpAccessiblePreview = nullptr;
         }
@@ -194,7 +188,7 @@ void PresenterAccessible::UpdateAccessibilityHierarchy (
             mpAccessiblePreview = AccessiblePreview::Create(
                 mxPreviewContentWindow,
                 mxPreviewBorderWindow);
-            mpAccessibleConsole->AddChild(mpAccessiblePreview);
+            AddChild(mpAccessiblePreview);
             mpAccessiblePreview->SetAccessibleName(rsTitle);
             mpAccessiblePreview->SetAccessibleParent(this);
         }
@@ -205,7 +199,7 @@ void PresenterAccessible::UpdateAccessibilityHierarchy (
 
     if (mpAccessibleNotes.is())
     {
-        mpAccessibleConsole->RemoveChild(mpAccessibleNotes);
+        RemoveChild(mpAccessibleNotes);
         mpAccessibleNotes->dispose();
         mpAccessibleNotes = nullptr;
     }
@@ -219,7 +213,7 @@ void PresenterAccessible::UpdateAccessibilityHierarchy (
             mxNotesContentWindow,
             mxNotesBorderWindow,
             rpNotesTextView);
-        mpAccessibleConsole->AddChild(mpAccessibleNotes);
+        AddChild(mpAccessibleNotes);
     }
 }
 
@@ -233,7 +227,7 @@ void PresenterAccessible::NotifyCurrentSlideChange ()
     }
 
     // Play some focus ping-pong to trigger AT tools.
-    //AccessibleFocusManager::Instance()->FocusObject(mpAccessibleConsole);
+    //AccessibleFocusManager::Instance()->FocusObject(this);
     AccessibleFocusManager::Instance()->FocusObject(mpAccessiblePreview);
 }
 
@@ -266,33 +260,25 @@ void SAL_CALL PresenterAccessible::disposing()
         mpAccessibleNotes->dispose();
     mpAccessibleNotes = nullptr;
 
-    if (mpAccessibleConsole)
-        mpAccessibleConsole->dispose();
-    mpAccessibleConsole = nullptr;
+    AccessibleObject::disposing();
 }
 
-//----- XAccessible -----------------------------------------------------------
-
-Reference<XAccessibleContext> SAL_CALL 
PresenterAccessible::getAccessibleContext()
+rtl::Reference<PresenterAccessible>
+PresenterAccessible::Create(const rtl::Reference<PresenterController>& 
xPresenterController,
+                            const 
css::uno::Reference<css::drawing::framework::XPane>& rxMainPane)
 {
-    if ( ! mpAccessibleConsole.is())
-    {
-        if (mxMainPane.is())
-        {
-            mxMainWindow = mxMainPane->getWindow();
-            mxMainWindow->addFocusListener(this);
-        }
+    rtl::Reference<PresenterAccessible> pPresenterAcc
+        = new PresenterAccessible(xPresenterController, rxMainPane);
+    pPresenterAcc->mxMainWindow->addFocusListener(pPresenterAcc);
 
-        const OUString sName = SdResId(STR_A11Y_PRESENTER_CONSOLE);
-        mpAccessibleConsole = new AccessibleObject(AccessibleRole::PANEL, 
sName);
-        mpAccessibleConsole->LateInitialization();
-        mpAccessibleConsole->UpdateStateSet();
+    pPresenterAcc->LateInitialization();
+    pPresenterAcc->UpdateStateSet();
 
-        mpAccessibleConsole->SetWindow(mxMainWindow, nullptr);
-        mpAccessibleConsole->SetAccessibleParent(mxAccessibleParent);
-        UpdateAccessibilityHierarchy();
-    }
-    return mpAccessibleConsole;
+    pPresenterAcc->SetWindow(pPresenterAcc->mxMainWindow, nullptr);
+    pPresenterAcc->SetAccessibleParent(pPresenterAcc->mxAccessibleParent);
+    pPresenterAcc->UpdateAccessibilityHierarchy();
+
+    return pPresenterAcc;
 }
 
 //----- XFocusListener ----------------------------------------------------
@@ -301,7 +287,7 @@ void SAL_CALL PresenterAccessible::focusGained (const 
css::awt::FocusEvent&)
 {
     SAL_INFO("sdext.presenter", __func__ << ": 
PresenterAccessible::focusGained at " << this
         << " and window " << mxMainWindow.get());
-    AccessibleFocusManager::Instance()->FocusObject(mpAccessibleConsole);
+    AccessibleFocusManager::Instance()->FocusObject(this);
 }
 
 void SAL_CALL PresenterAccessible::focusLost (const css::awt::FocusEvent&)
diff --git a/sd/source/console/PresenterAccessibility.hxx 
b/sd/source/console/PresenterAccessibility.hxx
index 03fa3c0a4dc3..591a1c3a5bd1 100644
--- a/sd/source/console/PresenterAccessibility.hxx
+++ b/sd/source/console/PresenterAccessibility.hxx
@@ -26,9 +26,6 @@
 #include <com/sun/star/accessibility/XAccessible.hpp>
 #include <com/sun/star/awt/XFocusListener.hpp>
 #include <com/sun/star/drawing/framework/XPane.hpp>
-#include <com/sun/star/drawing/framework/XPane2.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
 #include <cppuhelper/compbase.hxx>
 #include <cppuhelper/basemutex.hxx>
 #include <rtl/ref.hxx>
@@ -40,17 +37,17 @@ namespace sdext::presenter {
 class PresenterController;
 class PresenterTextView;
 
-typedef ::cppu::WeakComponentImplHelper<css::accessibility::XAccessible, 
css::awt::XFocusListener>
-    PresenterAccessibleInterfaceBase;
-
 class PresenterAccessible
-    : public ::cppu::BaseMutex,
-      public PresenterAccessibleInterfaceBase
+    : public cppu::ImplInheritanceHelper<AccessibleObject, 
css::awt::XFocusListener>
 {
+    PresenterAccessible(const rtl::Reference<PresenterController>& 
xPresenterController,
+                        const 
css::uno::Reference<css::drawing::framework::XPane>& rxMainPane);
+
 public:
-    PresenterAccessible (
-        ::rtl::Reference<PresenterController> xPresenterController,
-        const css::uno::Reference<css::drawing::framework::XPane>& rxMainPane);
+    static rtl::Reference<PresenterAccessible>
+    Create(const rtl::Reference<PresenterController>& xPresenterController,
+           const css::uno::Reference<css::drawing::framework::XPane>& 
rxMainPane);
+
     virtual ~PresenterAccessible() override;
 
     void UpdateAccessibilityHierarchy();
@@ -59,11 +56,6 @@ public:
 
     virtual void SAL_CALL disposing() override;
 
-    //----- XAccessible -------------------------------------------------------
-
-    virtual css::uno::Reference<css::accessibility::XAccessibleContext> 
SAL_CALL
-        getAccessibleContext() override;
-
     //----- XFocusListener ----------------------------------------------------
 
     virtual void SAL_CALL focusGained (const css::awt::FocusEvent& rEvent) 
override;
@@ -82,7 +74,6 @@ private:
     css::uno::Reference<css::awt::XWindow> mxPreviewBorderWindow;
     css::uno::Reference<css::awt::XWindow> mxNotesContentWindow;
     css::uno::Reference<css::awt::XWindow> mxNotesBorderWindow;
-    ::rtl::Reference<AccessibleObject> mpAccessibleConsole;
     ::rtl::Reference<AccessibleObject> mpAccessiblePreview;
     ::rtl::Reference<AccessibleObject> mpAccessibleNotes;
     css::uno::Reference<css::accessibility::XAccessible> mxAccessibleParent;
diff --git a/sd/source/console/PresenterController.cxx 
b/sd/source/console/PresenterController.cxx
index 1b407a713210..127f5e61e67d 100644
--- a/sd/source/console/PresenterController.cxx
+++ b/sd/source/console/PresenterController.cxx
@@ -42,6 +42,7 @@
 #include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
 #include <com/sun/star/drawing/framework/ResourceActivationMode.hpp>
 #include <com/sun/star/drawing/framework/ResourceId.hpp>
+#include <com/sun/star/drawing/framework/XPane2.hpp>
 #include <com/sun/star/frame/FrameSearchFlag.hpp>
 #include <com/sun/star/frame/XDispatchProvider.hpp>
 #include <com/sun/star/presentation/AnimationEffect.hpp>
@@ -1027,7 +1028,7 @@ void PresenterController::InitializeMainPane (const 
Reference<XPane>& rxPane)
     if ( ! rxPane.is())
         return;
 
-    mpAccessibleObject = new PresenterAccessible(this, rxPane);
+    mpAccessibleObject = PresenterAccessible::Create(this, rxPane);
 
     LoadTheme(rxPane);
 
commit d99879e3886785720465d366530c19adae32a1a1
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu May 15 15:06:33 2025 +0200
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu May 15 22:23:44 2025 +0200

    [API CHANGE] a11y: Drop unused XPane2::setAccessible
    
    This method is now unused since
    
        Change-Id: I055dd19bbec810126d67e7795ffdfab257beeed3
        Author: Michael Weghorn <[email protected]>
        Date:   Thu May 15 14:45:24 2025 +0200
    
            sd presenter a11y: Drop indirection to set win accessible
    
    , so drop it the same way that XPane2::getAccessible was
    dropped earlier in
    
        commit 26bf576f85f760c4495f34002d28c9114e1778cc
        Author: Michael Weghorn <[email protected]>
        Date:   Tue May 13 21:20:11 2025 +0200
    
            [API CHANGE] a11y: Drop unused XPane2::getAccessible
    
    Change-Id: Id0c185562213baa71de3987eb3b5d12fa24798f7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185366
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/offapi/com/sun/star/drawing/framework/XPane2.idl 
b/offapi/com/sun/star/drawing/framework/XPane2.idl
index bd3920853afe..b371c7a198df 100644
--- a/offapi/com/sun/star/drawing/framework/XPane2.idl
+++ b/offapi/com/sun/star/drawing/framework/XPane2.idl
@@ -20,8 +20,7 @@
 module com { module sun { module star { module drawing { module framework {
 
 /** An extension of the XPane interface that adds support for
-    a) showing and hiding the windows that internally belong to the pane and
-    b) setting the accessibility object.
+    showing and hiding the windows that internally belong to the pane.
     This is typically an optional interface.
 */
 interface XPane2
@@ -40,15 +39,6 @@ interface XPane2
             When `TRUE` then show the pane.  Hide it otherwise.
     */
     void setVisible ([in] boolean bIsVisible);
-
-    /** Set the accessibility object for the pane. When there is more than
-        one window used to implement the pane then the given accessibility
-        object is usually set at the topmost window.  However, the details
-        are implementation dependent.
-        @param xAccessible
-            May be an empty reference.
-    */
-    void setAccessible ([in] ::com::sun::star::accessibility::XAccessible 
xAccessible);
 };
 
 }; }; }; }; }; // ::com::sun::star::drawing::framework
diff --git a/sd/source/ui/framework/factories/FullScreenPane.cxx 
b/sd/source/ui/framework/factories/FullScreenPane.cxx
index 856ebce01a03..9753ea4996aa 100644
--- a/sd/source/ui/framework/factories/FullScreenPane.cxx
+++ b/sd/source/ui/framework/factories/FullScreenPane.cxx
@@ -140,11 +140,6 @@ void SAL_CALL FullScreenPane::setVisible (const sal_Bool 
bIsVisible)
         mpWorkWindow->Show(bIsVisible);
 }
 
-void SAL_CALL FullScreenPane::setAccessible(const 
Reference<css::accessibility::XAccessible>&)
-{
-    assert(false && "Shouldn't get here");
-}
-
 IMPL_LINK(FullScreenPane, WindowEventHandler, VclWindowEvent&, rEvent, void)
 {
     switch (rEvent.GetId())
diff --git a/sd/source/ui/framework/factories/FullScreenPane.hxx 
b/sd/source/ui/framework/factories/FullScreenPane.hxx
index 6939eeeacbed..6d7fad309818 100644
--- a/sd/source/ui/framework/factories/FullScreenPane.hxx
+++ b/sd/source/ui/framework/factories/FullScreenPane.hxx
@@ -65,9 +65,6 @@ public:
 
     virtual void SAL_CALL setVisible (sal_Bool bIsVisible) override;
 
-    virtual void SAL_CALL setAccessible (
-        const css::uno::Reference<css::accessibility::XAccessible>& 
rxAccessible) override;
-
     DECL_LINK(WindowEventHandler, VclWindowEvent&, void);
 
 protected:
diff --git a/sd/source/ui/framework/factories/Pane.cxx 
b/sd/source/ui/framework/factories/Pane.cxx
index 7a27bdb5e4d9..fee587182cdc 100644
--- a/sd/source/ui/framework/factories/Pane.cxx
+++ b/sd/source/ui/framework/factories/Pane.cxx
@@ -103,11 +103,6 @@ void SAL_CALL Pane::setVisible (sal_Bool bIsVisible)
         pWindow->Show(bIsVisible);
 }
 
-void SAL_CALL Pane::setAccessible(const 
Reference<css::accessibility::XAccessible>&)
-{
-    assert(false && "Shouldn't get here");
-}
-
 //----- XResource -------------------------------------------------------------
 
 Reference<XResourceId> SAL_CALL Pane::getResourceId()
diff --git a/sd/source/ui/inc/framework/Pane.hxx 
b/sd/source/ui/inc/framework/Pane.hxx
index 97337f4898e6..b4a3d1c83bf6 100644
--- a/sd/source/ui/inc/framework/Pane.hxx
+++ b/sd/source/ui/inc/framework/Pane.hxx
@@ -90,9 +90,6 @@ public:
 
     virtual void SAL_CALL setVisible (sal_Bool bIsVisible) override;
 
-    virtual void SAL_CALL setAccessible (
-        const css::uno::Reference<css::accessibility::XAccessible>& 
rxAccessible) override;
-
     //----- XResource ---------------------------------------------------------
 
     virtual css::uno::Reference<css::drawing::framework::XResourceId>
commit 675be4a949970c779526549ae2283d80d2821d79
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu May 15 14:45:24 2025 +0200
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu May 15 22:23:36 2025 +0200

    sd presenter a11y: Drop indirection to set win accessible
    
    So far the logic including indirection via UNO interfaces
    was like this:
    
    * The PresenterAccessible ctor calls XPane2::setAccessible,
      passing itself as the accessible.
    * The XPane2 implementations call vcl::Window::SetAccessible
      with the accessible.
    * The XPane2 implementations (at least the one in
      FullScreenPane::setAccessible) calls XInitialization::initialize
      on the accessible (which is implemented in PresenterAccessible)
      to set the window's a11y parent as the a11y parent of
      the PresenterAccessible.
    * PresenterAccessible::initialize takes that parent and remembers
      it and/or sets it on the underlying console a11y object.
    
    Get rid of that indirection by directly retrieving the
    pane's vcl::Window in the PresenterAccessible ctor and
    moving the logic there.
    
    Linking sdui against the toolkit module is newly needed because
    of the newly introduced use of VCLUnoHelper::GetWindow.
    
    Stop implementing the XInitialization iface in PresenterAccessible.
    
    Replace the XFrame2::setAccessible implementations with dummy
    ones that trigger an assert for now.
    (They will be dropped from the interface altogether in
    a separate commit.)
    
    PresenterAccessible no longer needs an XPane2 any more,
    which allows to drop some UNO querying between XPane and XPane
    interfaces.
    
    Change-Id: I055dd19bbec810126d67e7795ffdfab257beeed3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185365
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/sd/Library_sdui.mk b/sd/Library_sdui.mk
index 48cdaca3d159..ac9b5aac6ebb 100644
--- a/sd/Library_sdui.mk
+++ b/sd/Library_sdui.mk
@@ -58,6 +58,7 @@ $(eval $(call gb_Library_use_libraries,sdui,\
     svt \
     svxcore \
     svx \
+    tk \
     tl \
     utl \
     vcl \
diff --git a/sd/source/console/PresenterAccessibility.cxx 
b/sd/source/console/PresenterAccessibility.cxx
index 4adc3be02560..3ab2783e4734 100644
--- a/sd/source/console/PresenterAccessibility.cxx
+++ b/sd/source/console/PresenterAccessibility.cxx
@@ -45,6 +45,8 @@
 #include <cppuhelper/implbase.hxx>
 #include <o3tl/safeint.hxx>
 #include <sal/log.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
+#include <vcl/window.hxx>
 
 #include <algorithm>
 #include <utility>
@@ -89,10 +91,14 @@ PresenterAccessible::PresenterAccessible (
     const Reference<drawing::framework::XPane>& rxMainPane)
     : PresenterAccessibleInterfaceBase(m_aMutex),
       mpPresenterController(std::move(xPresenterController)),
-      mxMainPane(rxMainPane, UNO_QUERY)
+      mxMainPane(rxMainPane)
 {
-    if (mxMainPane.is())
-        mxMainPane->setAccessible(this);
+    assert(rxMainPane.is());
+    if (VclPtr<vcl::Window> pMainPaneWin = 
VCLUnoHelper::GetWindow(rxMainPane->getWindow()))
+    {
+        pMainPaneWin->SetAccessible(this);
+        mxAccessibleParent = pMainPaneWin->GetAccessibleParent();
+    }
 }
 
 PresenterAccessible::~PresenterAccessible()
@@ -246,7 +252,10 @@ void SAL_CALL PresenterAccessible::disposing()
         mxMainWindow->removeFocusListener(this);
 
         if (mxMainPane.is())
-            mxMainPane->setAccessible(nullptr);
+        {
+            if (VclPtr<vcl::Window> pMainPaneWin = 
VCLUnoHelper::GetWindow(mxMainPane->getWindow()))
+                pMainPaneWin->SetAccessible(nullptr);
+        }
     }
 
     if (mpAccessiblePreview)
@@ -268,10 +277,9 @@ Reference<XAccessibleContext> SAL_CALL 
PresenterAccessible::getAccessibleContext
 {
     if ( ! mpAccessibleConsole.is())
     {
-        Reference<XPane> xMainPane (mxMainPane, UNO_QUERY);
-        if (xMainPane.is())
+        if (mxMainPane.is())
         {
-            mxMainWindow = xMainPane->getWindow();
+            mxMainWindow = mxMainPane->getWindow();
             mxMainWindow->addFocusListener(this);
         }
 
@@ -310,18 +318,6 @@ void SAL_CALL PresenterAccessible::disposing (const 
css::lang::EventObject& rEve
         mxMainWindow = nullptr;
 }
 
-//----- XInitialize -----------------------------------------------------------
-
-void SAL_CALL PresenterAccessible::initialize (const 
css::uno::Sequence<css::uno::Any>& rArguments)
-{
-    if (rArguments.hasElements())
-    {
-        mxAccessibleParent.set(rArguments[0], UNO_QUERY);
-        if (mpAccessibleConsole.is())
-            mpAccessibleConsole->SetAccessibleParent(mxAccessibleParent);
-    }
-}
-
 } // end of namespace ::sd::presenter
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/console/PresenterAccessibility.hxx 
b/sd/source/console/PresenterAccessibility.hxx
index 6a8b1cb030fa..03fa3c0a4dc3 100644
--- a/sd/source/console/PresenterAccessibility.hxx
+++ b/sd/source/console/PresenterAccessibility.hxx
@@ -40,11 +40,8 @@ namespace sdext::presenter {
 class PresenterController;
 class PresenterTextView;
 
-typedef ::cppu::WeakComponentImplHelper <
-    css::accessibility::XAccessible,
-    css::lang::XInitialization,
-    css::awt::XFocusListener
-> PresenterAccessibleInterfaceBase;
+typedef ::cppu::WeakComponentImplHelper<css::accessibility::XAccessible, 
css::awt::XFocusListener>
+    PresenterAccessibleInterfaceBase;
 
 class PresenterAccessible
     : public ::cppu::BaseMutex,
@@ -77,13 +74,9 @@ public:
 
     virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent) 
override;
 
-    //----- XInitialization ---------------------------------------------------
-
-    virtual void SAL_CALL initialize (const css::uno::Sequence<css::uno::Any>& 
rArguments) override;
-
 private:
     ::rtl::Reference<PresenterController> mpPresenterController;
-    css::uno::Reference<css::drawing::framework::XPane2> mxMainPane;
+    css::uno::Reference<css::drawing::framework::XPane> mxMainPane;
     css::uno::Reference<css::awt::XWindow> mxMainWindow;
     css::uno::Reference<css::awt::XWindow> mxPreviewContentWindow;
     css::uno::Reference<css::awt::XWindow> mxPreviewBorderWindow;
diff --git a/sd/source/ui/framework/factories/FullScreenPane.cxx 
b/sd/source/ui/framework/factories/FullScreenPane.cxx
index d24d3bb21dcc..856ebce01a03 100644
--- a/sd/source/ui/framework/factories/FullScreenPane.cxx
+++ b/sd/source/ui/framework/factories/FullScreenPane.cxx
@@ -140,25 +140,9 @@ void SAL_CALL FullScreenPane::setVisible (const sal_Bool 
bIsVisible)
         mpWorkWindow->Show(bIsVisible);
 }
 
-void SAL_CALL FullScreenPane::setAccessible (
-    const Reference<css::accessibility::XAccessible>& rxAccessible)
+void SAL_CALL FullScreenPane::setAccessible(const 
Reference<css::accessibility::XAccessible>&)
 {
-    ThrowIfDisposed();
-
-    if (mpWindow == nullptr)
-        return;
-
-    Reference<lang::XInitialization> xInitializable (rxAccessible, UNO_QUERY);
-    if (xInitializable.is())
-    {
-        vcl::Window* pParentWindow = mpWindow->GetParent();
-        Reference<css::accessibility::XAccessible> xAccessibleParent;
-        if (pParentWindow != nullptr)
-            xAccessibleParent = pParentWindow->GetAccessible();
-        Sequence<Any> aArguments{ Any(xAccessibleParent) };
-        xInitializable->initialize(aArguments);
-    }
-    GetWindow()->SetAccessible(rxAccessible);
+    assert(false && "Shouldn't get here");
 }
 
 IMPL_LINK(FullScreenPane, WindowEventHandler, VclWindowEvent&, rEvent, void)
diff --git a/sd/source/ui/framework/factories/Pane.cxx 
b/sd/source/ui/framework/factories/Pane.cxx
index 2ef106694ba5..7a27bdb5e4d9 100644
--- a/sd/source/ui/framework/factories/Pane.cxx
+++ b/sd/source/ui/framework/factories/Pane.cxx
@@ -103,13 +103,9 @@ void SAL_CALL Pane::setVisible (sal_Bool bIsVisible)
         pWindow->Show(bIsVisible);
 }
 
-void SAL_CALL Pane::setAccessible (
-    const Reference<css::accessibility::XAccessible>& rxAccessible)
+void SAL_CALL Pane::setAccessible(const 
Reference<css::accessibility::XAccessible>&)
 {
-    ThrowIfDisposed();
-    vcl::Window* pWindow = GetWindow();
-    if (pWindow != nullptr)
-        pWindow->SetAccessible(rxAccessible);
+    assert(false && "Shouldn't get here");
 }
 
 //----- XResource -------------------------------------------------------------

Reply via email to