From e9bbe07501c4f76029fed0aa218b5376754951d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Boris=20Du=C5=A1ek?= Date: Mon, 5 Jan 2015 23:32:41 +0100 Subject: [PATCH] OS X Accessibility: implement AXStyleRangeForIndex in QTextEdit Not tested as I have no idea what VoiceOver uses it for (it seems to never query this attribute during any operation I tested). Change-Id: Ie5e2b765a9956bcf2be9b659b8914e393ed1ea90 Reviewed-by: Frederik Gladhorn --- src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm b/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm index 47ba50a443..d3bdbb9009 100644 --- a/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm +++ b/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm @@ -357,7 +357,7 @@ static void convertLineOffset(QAccessibleTextInterface *text, int &line, int &of // NSAccessibilityRangeForIndexParameterizedAttribute, NSAccessibilityBoundsForRangeParameterizedAttribute, // NSAccessibilityRTFForRangeParameterizedAttribute, -// NSAccessibilityStyleRangeForIndexParameterizedAttribute, + NSAccessibilityStyleRangeForIndexParameterizedAttribute, NSAccessibilityAttributedStringForRangeParameterizedAttribute, nil ]; @@ -424,6 +424,11 @@ static void convertLineOffset(QAccessibleTextInterface *text, int &line, int &of QPoint point(static_cast(nsPoint.x), static_cast(qt_mac_flipYCoordinate(nsPoint.y))); int offset = iface->textInterface()->offsetAtPoint(point); return [NSValue valueWithRange:NSMakeRange(static_cast(offset), 1)]; + } else if ([attribute isEqualToString: NSAccessibilityStyleRangeForIndexParameterizedAttribute]) { + int start = 0; + int end = 0; + iface->textInterface()->attributes([parameter intValue], &start, &end); + return [NSValue valueWithRange:NSMakeRange(static_cast(start), static_cast(end - start))]; } return nil; }