vcl/qt5/QtAccessibleEventListener.cxx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
New commits: commit 8ce3d4f8b000e11d63d37546c5f574e57db46551 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Thu Aug 25 16:58:06 2022 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Thu Aug 25 18:37:02 2022 +0200 qt a11y: Forward text selection change event as such Change-Id: I7e208d964c5b5badb0a3ea3a19c3ca3cc7fa4ff4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138838 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/vcl/qt5/QtAccessibleEventListener.cxx b/vcl/qt5/QtAccessibleEventListener.cxx index dd2ee1b2eae6..9dbc3f3e5504 100644 --- a/vcl/qt5/QtAccessibleEventListener.cxx +++ b/vcl/qt5/QtAccessibleEventListener.cxx @@ -30,6 +30,7 @@ #include <com/sun/star/accessibility/TextSegment.hpp> #include <QtGui/QAccessible> +#include <QtGui/QAccessibleTextSelectionEvent> using namespace css; using namespace css::accessibility; @@ -222,9 +223,21 @@ void QtAccessibleEventListener::notifyEvent(const css::accessibility::Accessible new QAccessibleEvent(pQAccessibleInterface, QAccessible::VisibleDataChanged)); return; case AccessibleEventId::TEXT_SELECTION_CHANGED: + { + QAccessibleTextInterface* pTextInterface = pQAccessibleInterface->textInterface(); + if (!pTextInterface) + { + SAL_WARN("vcl.qt", "TEXT_SELECTION_CHANGED event received for object not " + "implementing text interface"); + return; + } + int nStartOffset = 0; + int nEndOffset = 0; + pTextInterface->selection(0, &nStartOffset, &nEndOffset); QAccessible::updateAccessibility( - new QAccessibleEvent(pQAccessibleInterface, QAccessible::Selection)); + new QAccessibleTextSelectionEvent(pQAccessibleInterface, nStartOffset, nEndOffset)); return; + } case AccessibleEventId::TEXT_ATTRIBUTE_CHANGED: QAccessible::updateAccessibility( new QAccessibleEvent(pQAccessibleInterface, QAccessible::AttributeChanged));