[openoffice.org] Resolves: rhbz#624908/ooo#114012 bad a11y chain in draw

Caolan McNamara caolanm at fedoraproject.org
Fri Aug 27 12:50:56 UTC 2010


commit f82323d4c7cc971e54f09847cdcd6ccb1861cc60
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Aug 27 13:50:39 2010 +0100

    Resolves: rhbz#624908/ooo#114012 bad a11y chain in draw

 ...ffice.org-3.3.0.ooo114012.sd.bada11ychain.patch |   66 ++++++++++++++++---
 1 files changed, 55 insertions(+), 11 deletions(-)
---
diff --git a/openoffice.org-3.3.0.ooo114012.sd.bada11ychain.patch b/openoffice.org-3.3.0.ooo114012.sd.bada11ychain.patch
index e079399..39a148d 100644
--- a/openoffice.org-3.3.0.ooo114012.sd.bada11ychain.patch
+++ b/openoffice.org-3.3.0.ooo114012.sd.bada11ychain.patch
@@ -1,6 +1,6 @@
---- sd/source/ui/accessibility/AccessibleSlideSorterView.cxx	2010-08-20 10:29:47.000000000 +0100
-+++ sd/source/ui/accessibility/AccessibleSlideSorterView.cxx	2010-08-20 10:45:27.000000000 +0100
-@@ -109,13 +109,18 @@
+--- sd/source/ui/accessibility/AccessibleSlideSorterView.cxx	2010-08-27 13:38:58.000000000 +0100
++++ sd/source/ui/accessibility/AccessibleSlideSorterView.cxx	2010-08-27 13:34:27.000000000 +0100
+@@ -109,7 +109,6 @@
      const Reference<XAccessible>& rxParent,
      ::Window* pContentWindow)
      : AccessibleSlideSorterViewBase(MutexOwner::maMutex),
@@ -8,15 +8,59 @@
        mrSlideSorter(rSlideSorter),
        mxParent(rxParent),
        mnClientId(0),
-       mpContentWindow(pContentWindow)
+@@ -121,6 +120,16 @@
+ 
+ 
+ 
++
++void AccessibleSlideSorterView::Init()
++{
++    mpImpl.reset(new Implementation(*this,mrSlideSorter,mpContentWindow));
++}
++
++
++
++
++
+ AccessibleSlideSorterView::~AccessibleSlideSorterView (void)
  {
- 	OSL_TRACE("creating AccessibleSlideSorterView");
-+    //self-acquire for the duration of the ctor to avoid
-+    //that the Implementation ctor ends up disposing us
-+    //before we've even finished ctor
-+    acquire();
-+    mpImpl.reset(new Implementation(*this,rSlideSorter,pContentWindow));
-+    release();
+     Destroyed ();
+--- sd/source/ui/inc/AccessibleSlideSorterView.hxx	2010-08-27 13:01:53.000000000 +0100
++++ sd/source/ui/inc/AccessibleSlideSorterView.hxx	2010-08-27 13:30:28.000000000 +0100
+@@ -76,6 +76,8 @@
+         ::sd::slidesorter::SlideSorter& rSlideSorter,
+ 	    const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> & rxParent,
+         ::Window* pParentWindow);
++
++    void Init();
+     
+     virtual ~AccessibleSlideSorterView (void);
+ 
+--- sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx	2010-08-27 13:01:53.000000000 +0100
++++ sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx	2010-08-27 13:41:43.000000000 +0100
+@@ -273,16 +273,22 @@
+     SlideSorterViewShell::CreateAccessibleDocumentView (::sd::Window* pWindow)
+ {
+     OSL_ASSERT(mpSlideSorter.get()!=NULL);
+-
+     // When the view is not set then the initialization is not yet complete
+     // and we can not yet provide an accessibility object.
+-    if (mpView == NULL)
++    if (mpView == NULL || mpSlideSorter.get() == NULL)
+         return NULL;
+ 
+-    return new ::accessibility::AccessibleSlideSorterView (
++    ::accessibility::AccessibleSlideSorterView *pAccessibleView = 
++    new ::accessibility::AccessibleSlideSorterView(
+         *mpSlideSorter.get(),
+         pWindow->GetAccessibleParentWindow()->GetAccessible(),
+         pWindow);
++
++    ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> xRet(pAccessibleView);
++
++    pAccessibleView->Init();
++
++    return xRet;
  }
  
  


More information about the scm-commits mailing list