summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp')
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
index 6c4d217cb4..5003d9effd 100644
--- a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
+++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
@@ -998,8 +998,14 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accRole(VARIANT varID, VAR
}
if (role != QAccessible::NoRole) {
- if (role == QAccessible::LayeredPane)
- role = QAccessible::Pane;
+ if (role >= QAccessible::LayeredPane) {
+ // This block should hopefully only be entered if the AT client
+ // does not support IAccessible2, since it should prefer IA2::role() then.
+ if (role == QAccessible::LayeredPane)
+ role = QAccessible::Pane;
+ else
+ role = QAccessible::Client;
+ }
(*pvarRole).vt = VT_I4;
(*pvarRole).lVal = role;
} else {