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;