sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx |   12 +++++++++---
 sd/source/ui/inc/AccessibleDocumentViewBase.hxx           |    2 ++
 2 files changed, 11 insertions(+), 3 deletions(-)

New commits:
commit 493393d651ec32fd9cfbeb05f51253f70f4c0a87
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Tue Mar 23 13:05:26 2021 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Wed Mar 24 16:16:17 2021 +0100

    Resolves: tdf#135364 ensure the window is released by a11y dispose
    
    the window dtor wasn't called with a11y enabled, with the side
    effect that the pen color wasn't stored by the dtor
    
    Change-Id: I5f482f53d4d93f1e2632cacf7c0a7407f0df1450
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112991
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx 
b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
index 327ea2eaa64b..a819ca19b3e4 100644
--- a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
+++ b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
@@ -88,13 +88,17 @@ AccessibleDocumentViewBase::AccessibleDocumentViewBase (
     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.
-
-    SolarMutexGuard g;
-    mpWindow.reset();
+    ReleaseWindow(); // this should already be done by impl_dispose
 }
 
 void AccessibleDocumentViewBase::Init()
@@ -484,6 +488,8 @@ void AccessibleDocumentViewBase::impl_dispose()
     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 3a48c0a70790..efaeda0cc9b2 100644
--- a/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
+++ b/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
@@ -238,6 +238,8 @@ private:
     virtual void
         implSelect( sal_Int32 nAccessibleChildIndex, bool bSelect ) override;
 
+    void ReleaseWindow();
+
 protected:
     /// The core window that is made accessible.
     VclPtr< ::sd::Window> mpWindow;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to