diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Custom Widgets')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextRenderer.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextRenderer.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextRenderer.java index 273beaaca5..bb86d5e2a2 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextRenderer.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextRenderer.java @@ -627,16 +627,18 @@ StyleRange[] getStyleRanges(int start, int length, boolean includeRanges) { newStyles = new StyleRange[rangeEnd - rangeStart + 1]; System.arraycopy(styles, rangeStart, newStyles, 0, newStyles.length); } - StyleRange style = newStyles[0]; - if (start > style.start) { - if (!includeRanges || ranges == null) newStyles[0] = style = (StyleRange)style.clone(); - style.length = style.start + style.length - start; - style.start = start; - } - style = newStyles[newStyles.length - 1]; - if (end < style.start + style.length - 1) { - if (!includeRanges || ranges == null) newStyles[newStyles.length - 1] = style = (StyleRange)style.clone(); - style.length = end - style.start + 1; + if (includeRanges || ranges == null) { + StyleRange style = newStyles[0]; + if (start > style.start) { + newStyles[0] = style = (StyleRange)style.clone(); + style.length = style.start + style.length - start; + style.start = start; + } + style = newStyles[newStyles.length - 1]; + if (end < style.start + style.length - 1) { + newStyles[newStyles.length - 1] = style = (StyleRange)style.clone(); + style.length = end - style.start + 1; + } } return newStyles; } |