summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorQt CI Bot <qt_ci_bot@qt-project.org>2021-03-25 13:40:30 +0000
committerQt CI Bot <qt_ci_bot@qt-project.org>2021-03-25 13:40:30 +0000
commit14eeb520858b624a2c9e09b5bd95ea8fb90a1f5a (patch)
tree002d530f767f8d1500545fab43ff524ebe80cba3 /src/plugins/platforms
parent2d4699501b0943eb44b24b6087230115301445ca (diff)
parentce83e56cfeb2806181ec1daade9690f4c90b901c (diff)
Merge integration refs/builds/qtci/dev/1616667899
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.cpp
index 18becd4ab0..171a3c268b 100644
--- a/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.cpp
+++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.cpp
@@ -107,6 +107,17 @@ QWindowsUiaMainProvider::~QWindowsUiaMainProvider()
void QWindowsUiaMainProvider::notifyFocusChange(QAccessibleEvent *event)
{
if (QAccessibleInterface *accessible = event->accessibleInterface()) {
+ // If this is a table/tree/list, raise event for the focused cell/item instead.
+ if (accessible->tableInterface()) {
+ int count = accessible->childCount();
+ for (int i = 0; i < count; ++i) {
+ QAccessibleInterface *item = accessible->child(i);
+ if (item && item->isValid() && item->state().focused) {
+ accessible = item;
+ break;
+ }
+ }
+ }
if (QWindowsUiaMainProvider *provider = providerForAccessible(accessible)) {
QWindowsUiaWrapper::instance()->raiseAutomationEvent(provider, UIA_AutomationFocusChangedEventId);
}