Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Williams2018-08-15 18:21:51 +0000
committerEric Williams2018-08-15 19:05:32 +0000
commit6228520a024e8d324316da4d3234714a05ef7d1b (patch)
tree4cdecf44e897f077f47dd81a24705cdc3c7a4892 /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Canvas.java
parentf241cc874342ce675ac143bbdd287a607962252e (diff)
downloadeclipse.platform.swt-6228520a024e8d324316da4d3234714a05ef7d1b.tar.gz
eclipse.platform.swt-6228520a024e8d324316da4d3234714a05ef7d1b.tar.xz
eclipse.platform.swt-6228520a024e8d324316da4d3234714a05ef7d1b.zip
Bug 528819: [GTK3] StyledText draws carets if unfocused
Only draw the caret if it has focus: this logic existed for GTK3.20- but was removed in a fix for Wayland. Restoring this behaviour fixes the bug for GTK3.22 as well. Tested with the snippet attached and in the IDE. No reduction in Caret performance is observed. Change-Id: I91d78217e90ce7ac7d1ab3e0898b0dda6fad44d2 Signed-off-by: Eric Williams <ericwill@redhat.com>
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Canvas.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Canvas.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Canvas.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Canvas.java
index cdfb57c867..ebbb60fbce 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Canvas.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Canvas.java
@@ -180,8 +180,10 @@ long /*int*/ gtk_draw (long /*int*/ widget, long /*int*/ cairo) {
* blink is needed to be checked as gtk_draw() signals sent from other parts of the canvas
* can interfere with the blinking state. This will ensure that we are only draw/redrawing the
* caret when it is intended to. See Bug 517487.
+ *
+ * Additionally, only draw the caret if it has focus. See bug 528819.
*/
- if (caret != null && blink == true) {
+ if (caret != null && blink == true && caret.isFocusCaret()) {
drawCaret(widget,cairo);
blink = false;
}

Back to the top