Related: tdf#135363 don't keep a reference to the vcl::Window

in fact, why keep a VclPtr reference to that window at all

Change-Id: I3f0511b41434cba744a63d4a9e185c97a6cef5e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112992
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
index a819ca1..2e198ba 100644
--- a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
+++ b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
@@ -66,7 +66,6 @@
                             pViewShell->GetDoc()->GetDocumentType() == DocumentType::Impress ?
                                     AccessibleRole::DOCUMENT_PRESENTATION :
                                     AccessibleRole::DOCUMENT),
      mpWindow (pSdWindow),
      mxController (rxController),
      maViewForwarder (
        static_cast<SdrPaintView*>(pViewShell->GetView()),
@@ -88,17 +87,10 @@
    mpViewShell = pViewShell;
}

void AccessibleDocumentViewBase::ReleaseWindow()
{
    SolarMutexGuard g;
    mpWindow.reset();
}

AccessibleDocumentViewBase::~AccessibleDocumentViewBase()
{
    // At this place we should be disposed.  You may want to add a
    // corresponding assertion into the destructor of a derived class.
    ReleaseWindow(); // this should already be done by impl_dispose
}

void AccessibleDocumentViewBase::Init()
@@ -488,8 +480,6 @@
    mxController = nullptr;

    maShapeTreeInfo.SetDocumentWindow (nullptr);

    ReleaseWindow(); // tdf#135364 - ensure the window is released by dispose
}

//=====  XEventListener  ======================================================
diff --git a/sd/source/ui/inc/AccessibleDocumentViewBase.hxx b/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
index efaeda0..9fd7f02 100644
--- a/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
+++ b/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
@@ -238,12 +238,7 @@
    virtual void
        implSelect( sal_Int32 nAccessibleChildIndex, bool bSelect ) override;

    void ReleaseWindow();

protected:
    /// The core window that is made accessible.
    VclPtr< ::sd::Window> mpWindow;

    /// The API window that is made accessible.
    css::uno::Reference< css::awt::XWindow>
         mxWindow;