sw/inc/accmap.hxx | 3 +-- sw/source/core/access/accmap.cxx | 15 ++++++--------- 2 files changed, 7 insertions(+), 11 deletions(-)
New commits: commit 8479bbecd2434d65eb6c26100a783ecf96f6da12 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Wed Jan 24 12:10:32 2024 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Thu Jan 25 09:41:38 2024 +0100 sw a11y: Return SwAccessibleContext to avoid casting Let `SwAccessibleMap::GetDocumentView_` return the more concrete `rtl::Reference<SwAccessibleContext>` instead of `uno::Reference<XAccessible>`, which avoids having to cast in one place in `SwAccessibleMap::DoInvalidateShapeSelection` (and more places in upcoming changes). Replace the null check by an assert, as `SwAccessibleMap::GetDocumentView_` never returns an empty reference. Change-Id: I32d5bd2f81e7a69eacf92af1cf24249eb3a9f2a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162516 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/sw/inc/accmap.hxx b/sw/inc/accmap.hxx index 6e5c189a97b4..9daf15b8ae07 100644 --- a/sw/inc/accmap.hxx +++ b/sw/inc/accmap.hxx @@ -131,8 +131,7 @@ class SwAccessibleMap final : public ::accessibility::IAccessibleViewForwarder, void InvalidateRelationSet_( const SwFrame* pFrame, bool bFrom ); - css::uno::Reference<css::accessibility::XAccessible> - GetDocumentView_( bool bPagePreview ); + rtl::Reference<SwAccessibleContext> GetDocumentView_(bool bPagePreview); /** method to build up a new data structure of the accessible paragraphs, which have a selection diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx index ebc877601efc..0a6da3f501b8 100644 --- a/sw/source/core/access/accmap.cxx +++ b/sw/source/core/access/accmap.cxx @@ -1556,14 +1556,11 @@ void SwAccessibleMap::DoInvalidateShapeSelection(bool bInvalidateFocusMode /*=fa const unsigned int SELECTION_WITH_NUM = 10; if (vecxShapeAdd.size() > SELECTION_WITH_NUM ) { - uno::Reference< XAccessible > xDoc = GetDocumentView( ); - SwAccessibleContext * pCont = static_cast<SwAccessibleContext *>(xDoc.get()); - if (pCont) - { - AccessibleEventObject aEvent; - aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_WITHIN; - pCont->FireAccessibleEvent(aEvent); - } + rtl::Reference<SwAccessibleContext> xDoc = GetDocumentView_(false); + assert(xDoc.is()); + AccessibleEventObject aEvent; + aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_WITHIN; + xDoc->FireAccessibleEvent(aEvent); } else { @@ -1696,7 +1693,7 @@ SwAccessibleMap::~SwAccessibleMap() mpVSh->GetLayout()->RemoveAccessibleShell(); } -uno::Reference< XAccessible > SwAccessibleMap::GetDocumentView_( +rtl::Reference<SwAccessibleContext> SwAccessibleMap::GetDocumentView_( bool bPagePreview ) { DBG_TESTSOLARMUTEX();