vcl/inc/accessibility/accessiblelistboxentry.hxx         |    2 -
 vcl/source/accessibility/accessiblelistboxentry.cxx      |   28 ++++++---------
 vcl/source/accessibility/vclxaccessibletabpagewindow.cxx |   18 +++------
 3 files changed, 20 insertions(+), 28 deletions(-)

New commits:
commit 0c526c7c9268b9ab2405486925d1cd1e9c4ebe69
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Wed Jul 30 17:02:57 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Aug 1 11:31:55 2025 +0200

    vcl a11y: Simplify AccessibleListBoxEntry::IsShowing_Impl
    
    Use an OAccessible var, which gets rid of the need to
    retrieve an XAccessibleContext and XAccessibleComponent
    from that one, as OAccessible implements all of these
    interfaces.
    
    Change-Id: I910630a4766ef5f720d91b6d451d6a23bc32dd93
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188633
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Jenkins

diff --git a/vcl/source/accessibility/accessiblelistboxentry.cxx 
b/vcl/source/accessibility/accessiblelistboxentry.cxx
index b5498cfb52e1..f0cf6ec79622 100644
--- a/vcl/source/accessibility/accessiblelistboxentry.cxx
+++ b/vcl/source/accessibility/accessiblelistboxentry.cxx
@@ -113,17 +113,13 @@ tools::Rectangle 
AccessibleListBoxEntry::GetBoundingBox_Impl() const
 
 bool AccessibleListBoxEntry::IsShowing_Impl() const
 {
-    Reference< XAccessible > xParent = implGetParentAccessible( );
+    rtl::Reference<comphelper::OAccessible> pParent = 
implGetParentAccessible();
 
     bool bShowing = false;
-    Reference< XAccessibleContext > xParentContext =
-        xParent.is() ? xParent->getAccessibleContext() : Reference< 
XAccessibleContext >();
-    if( xParentContext.is() )
+    if (pParent.is())
     {
-        Reference< XAccessibleComponent > xParentComp( xParentContext, 
uno::UNO_QUERY );
-        if( xParentComp.is() )
-            bShowing = GetBoundingBox_Impl().Overlaps(
-                vcl::unohelper::ConvertToVCLRect(xParentComp->getBounds()));
+        bShowing = GetBoundingBox_Impl().Overlaps(
+            vcl::unohelper::ConvertToVCLRect(pParent->getBounds()));
     }
 
     return bShowing;
commit 60e6217ae3ae2c4926be03ebecfc0acf84aaa9d1
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Wed Jul 30 16:59:49 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Aug 1 11:31:49 2025 +0200

    a11y: Return OAccessible in AccessibleListBoxEntry::implGetParentAccessible
    
    Change-Id: I46099a360c9041702e5ccbbd7a83218729852338
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188632
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/vcl/inc/accessibility/accessiblelistboxentry.hxx 
b/vcl/inc/accessibility/accessiblelistboxentry.hxx
index 1520a8f4fe2f..db20f71ef049 100644
--- a/vcl/inc/accessibility/accessiblelistboxentry.hxx
+++ b/vcl/inc/accessibility/accessiblelistboxentry.hxx
@@ -159,7 +159,7 @@ private:
     virtual css::uno::Any SAL_CALL getMinimumValue(  ) override;
     virtual css::uno::Any SAL_CALL getMinimumIncrement(  ) override;
 
-    css::uno::Reference< css::accessibility::XAccessible > 
implGetParentAccessible( ) const;
+    rtl::Reference<comphelper::OAccessible> implGetParentAccessible() const;
     SvTreeListEntry* GetRealChild(sal_Int32 nIndex);
     sal_Int32 GetRoleType() const;
 };
diff --git a/vcl/source/accessibility/accessiblelistboxentry.cxx 
b/vcl/source/accessibility/accessiblelistboxentry.cxx
index ea022d70d1be..b5498cfb52e1 100644
--- a/vcl/source/accessibility/accessiblelistboxentry.cxx
+++ b/vcl/source/accessibility/accessiblelistboxentry.cxx
@@ -242,15 +242,15 @@ Reference< XAccessible > SAL_CALL 
AccessibleListBoxEntry::getAccessibleChild( sa
     return xListBox->implGetAccessible(*pEntry);
 }
 
-Reference< XAccessible > AccessibleListBoxEntry::implGetParentAccessible( ) 
const
+rtl::Reference<comphelper::OAccessible> 
AccessibleListBoxEntry::implGetParentAccessible() const
 {
-    Reference< XAccessible > xParent;
+    rtl::Reference<comphelper::OAccessible> pParent;
     assert( m_aEntryPath.size() ); // invalid path
     if ( m_aEntryPath.size() == 1 )
     {   // we're a top level entry
         // -> our parent is the tree listbox itself
         if ( m_pTreeListBox )
-            xParent = m_pTreeListBox->GetAccessible( );
+            pParent = m_pTreeListBox->GetAccessible();
     }
     else
     {   // we have an entry as parent -> get its accessible
@@ -272,7 +272,7 @@ Reference< XAccessible > 
AccessibleListBoxEntry::implGetParentAccessible( ) cons
         }
     }
 
-    return xParent;
+    return pParent;
 }
 
 
@@ -379,14 +379,14 @@ OUString SAL_CALL 
AccessibleListBoxEntry::getAccessibleName(  )
 
 Reference< XAccessibleRelationSet > SAL_CALL 
AccessibleListBoxEntry::getAccessibleRelationSet(  )
 {
-    Reference< XAccessible > xParent;
+    rtl::Reference<comphelper::OAccessible> pParent;
     if ( m_aEntryPath.size() > 1 ) // not a root entry
-        xParent = implGetParentAccessible();
-    if ( !xParent )
+        pParent = implGetParentAccessible();
+    if (!pParent.is())
         return nullptr;
 
     rtl::Reference<utl::AccessibleRelationSetHelper> pRelationSetHelper = new 
utl::AccessibleRelationSetHelper;
-    Sequence<Reference<XAccessible>> aSequence { xParent };
+    Sequence<Reference<XAccessible>> aSequence{ pParent };
     pRelationSetHelper->AddRelation(
         AccessibleRelation( AccessibleRelationType_NODE_CHILD_OF, aSequence ) 
);
     return pRelationSetHelper;
commit 619fcc31f2198ec62a98de8451654fab02f2c6e3
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Wed Jul 30 16:46:44 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Aug 1 11:31:43 2025 +0200

    vcl: Use OAccessible var in VCLXAccessibleTabPageWindow::getAccessibleParent
    
    This also allows to drop one call to XAccessible::getAccessibleContext
    because OAccessible implements that interface itself.
    
    Change-Id: Ia6d698af0452ee85de4aba9c189f8af5399ccf8f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188631
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Jenkins

diff --git a/vcl/source/accessibility/vclxaccessibletabpagewindow.cxx 
b/vcl/source/accessibility/vclxaccessibletabpagewindow.cxx
index 5be52ef5c23f..6007d28671a7 100644
--- a/vcl/source/accessibility/vclxaccessibletabpagewindow.cxx
+++ b/vcl/source/accessibility/vclxaccessibletabpagewindow.cxx
@@ -100,19 +100,15 @@ Reference< XAccessible > 
VCLXAccessibleTabPageWindow::getAccessibleParent(  )
     Reference< XAccessible > xParent;
     if ( m_pTabControl )
     {
-        Reference< XAccessible > xAcc( m_pTabControl->GetAccessible() );
-        if ( xAcc.is() )
+        rtl::Reference<comphelper::OAccessible> pAcc = 
m_pTabControl->GetAccessible();
+        if (pAcc.is())
         {
-            Reference< XAccessibleContext > xCont( 
xAcc->getAccessibleContext() );
-            if ( xCont.is() )
-            {
-                sal_uInt16 const 
nPagePos(m_pTabControl->GetPagePos(m_nPageId));
-                SAL_WARN_IF(nPagePos == TAB_PAGE_NOTFOUND, "accessibility",
+            sal_uInt16 const nPagePos(m_pTabControl->GetPagePos(m_nPageId));
+            SAL_WARN_IF(nPagePos == TAB_PAGE_NOTFOUND, "accessibility",
                         "getAccessibleParent(): no tab page");
-                if (nPagePos != TAB_PAGE_NOTFOUND)
-                {
-                    xParent = xCont->getAccessibleChild(nPagePos);
-                }
+            if (nPagePos != TAB_PAGE_NOTFOUND)
+            {
+                xParent = pAcc->getAccessibleChild(nPagePos);
             }
         }
     }

Reply via email to