summaryrefslogtreecommitdiffstats
path: root/src/widgets/accessible/qaccessiblewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/accessible/qaccessiblewidget.cpp')
-rw-r--r--src/widgets/accessible/qaccessiblewidget.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp
index c782e00f4f..68ad855c7c 100644
--- a/src/widgets/accessible/qaccessiblewidget.cpp
+++ b/src/widgets/accessible/qaccessiblewidget.cpp
@@ -376,8 +376,12 @@ QAccessibleInterface *QAccessibleWidget::focusChild() const
if (!fw)
return nullptr;
- if (isAncestor(widget(), fw) || fw == widget())
- return QAccessible::queryAccessibleInterface(fw);
+ if (isAncestor(widget(), fw)) {
+ QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(fw);
+ if (!iface || iface == this || !iface->focusChild())
+ return iface;
+ return iface->focusChild();
+ }
return nullptr;
}