Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonah Graham2021-06-19 14:11:05 +0000
committerJonah Graham2021-06-19 17:50:16 +0000
commit83f0b1be0583ba8e810be71ba91fee3bee0b05da (patch)
tree3658550388a5fe6179cdfcf79e4920a209c3a936
parent49d29dc6ae3fe9c7ae557aeac103b3552cc8fce9 (diff)
downloadorg.eclipse.cdt-83f0b1be0583ba8e810be71ba91fee3bee0b05da.tar.gz
org.eclipse.cdt-83f0b1be0583ba8e810be71ba91fee3bee0b05da.tar.xz
org.eclipse.cdt-83f0b1be0583ba8e810be71ba91fee3bee0b05da.zip
Bug 574271: Draw characters in the correct color on macos
There is a bug in SWT on macos - Bug 568777 - with the cache of single character drawStrings with transparent backgrounds as a performance boost. This causes the terminal to draw some characters in the wrong color. The workaround is to not draw with transparency, which should be fine because we just filled the background with the same color that the 1 character string will draw with. The performance, measured with TerminalTextUITest in Fast mode with no throttling, does not seem affected and in my testing there does not seem to be any graphic side effects. Change-Id: I1b0aadae100d81a8f4533ba73273ccc8202e068f
-rw-r--r--terminal/plugins/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java2
1 files changed, 1 insertions, 1 deletions
diff --git a/terminal/plugins/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java b/terminal/plugins/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java
index ab3d08080e3..845ee499581 100644
--- a/terminal/plugins/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java
+++ b/terminal/plugins/org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java
@@ -176,7 +176,7 @@ public class TextLineRenderer implements ILinelRenderer {
// TODO why do I have to draw the background character by character??????
gc.fillRectangle(xx, y, fStyleMap.getFontWidth(), fStyleMap.getFontHeight());
if (c != ' ' && c != '\000') {
- gc.drawString(String.valueOf(c), fStyleMap.getCharOffset(c) + xx, y, true);
+ gc.drawString(String.valueOf(c), fStyleMap.getCharOffset(c) + xx, y, false);
}
}
} else {

Back to the top