summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@qt.io>2019-01-11 06:57:48 +0100
committerMorten Johan Sørvig <morten.sorvig@qt.io>2019-01-29 18:39:31 +0000
commit64e8e69d25e08ad81cdb5fb8c2897bc3c0283c9f (patch)
treee5d37d61818136f2c7776ecdb19656d488478b08 /src
parent70b3e1fcc532026e164ae08a35981cfd56bc4e4b (diff)
Cocoa: Don’t cache accessibility role
The object role may in some cases (e.g. when using Qt Quick Loaders) be changed after construction, and we don’t have RoleChanged events. Change-Id: Idb246c1c1206221cacd93c83cbd07a0e3d98cb0e Fixes: QTBUG-72967 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm b/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm
index a1176da33f..f26263261c 100644
--- a/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm
+++ b/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm
@@ -100,7 +100,6 @@ static void convertLineOffset(QAccessibleTextInterface *text, int *line, int *of
}
@implementation QMacAccessibilityElement {
- NSString *role;
QAccessible::Id axid;
}
@@ -110,9 +109,6 @@ static void convertLineOffset(QAccessibleTextInterface *text, int *line, int *of
self = [super init];
if (self) {
axid = anId;
- QAccessibleInterface *iface = QAccessible::accessibleInterface(axid);
- Q_ASSERT(iface);
- role = QCocoaAccessible::macRole(iface);
}
return self;
@@ -276,11 +272,12 @@ static void convertLineOffset(QAccessibleTextInterface *text, int *line, int *of
}
if ([attribute isEqualToString:NSAccessibilityRoleAttribute]) {
- return role;
+ return QCocoaAccessible::macRole(iface);
} else if ([attribute isEqualToString:NSAccessibilitySubroleAttribute]) {
return QCocoaAccessible::macSubrole(iface);
} else if ([attribute isEqualToString:NSAccessibilityRoleDescriptionAttribute]) {
- return NSAccessibilityRoleDescription(role, [self accessibilityAttributeValue:NSAccessibilitySubroleAttribute]);
+ return NSAccessibilityRoleDescription(QCocoaAccessible::macRole(iface),
+ [self accessibilityAttributeValue:NSAccessibilitySubroleAttribute]);
} else if ([attribute isEqualToString:NSAccessibilityChildrenAttribute]) {
return QCocoaAccessible::unignoredChildren(iface);
} else if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) {