Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelipe Heidrich2010-04-09 14:38:14 +0000
committerFelipe Heidrich2010-04-09 14:38:14 +0000
commite478c1393323532873f4afad237bfead8a929a28 (patch)
tree0c1bcbb75fa70575fbad4770d97b508354f32d1e /bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java
parent54a339f69ab201fd4151c46c05efb9f76a34fba3 (diff)
downloadeclipse.platform.swt-e478c1393323532873f4afad237bfead8a929a28.tar.gz
eclipse.platform.swt-e478c1393323532873f4afad237bfead8a929a28.tar.xz
eclipse.platform.swt-e478c1393323532873f4afad237bfead8a929a28.zip
fix for accessibility
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java')
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java26
1 files changed, 19 insertions, 7 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java
index 0ccdc4aa20..dae2a70b37 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java
@@ -6689,17 +6689,29 @@ void initializeAccessible() {
offset = offset - lineOffset;
e.textStyle = layout.getStyle(offset);
int[] ranges = layout.getRanges();
+ int length = layout.getText().length();
+ st.renderer.disposeTextLayout(layout);
int index = 0;
+ int end = 0;
while (index < ranges.length) {
- int start = ranges[index++];
- int end = ranges[index++];
- if (start <= offset && offset <= end) {
- e.start = lineOffset + start;
- e.end = lineOffset + end + 1;
- break;
+ int styleStart = ranges[index++];
+ int styleEnd = ranges[index++];
+ if (styleStart <= offset && offset <= styleEnd) {
+ e.start = lineOffset + styleStart;
+ e.end = lineOffset + styleEnd + 1;
+ return;
}
+ if (styleStart > offset) {
+ e.start = lineOffset + end;
+ e.end = lineOffset + styleStart;
+ return;
+ }
+ end = styleEnd + 1;
+ }
+ if (index == ranges.length) {
+ e.start = lineOffset + end;
+ e.end = lineOffset + length;
}
- st.renderer.disposeTextLayout(layout);
}
});
accessible.addAccessibleControlListener(new AccessibleControlAdapter() {

Back to the top