Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXi Yan2018-10-12 17:37:29 +0000
committerXi Yan2018-10-12 17:37:29 +0000
commit8abd3686d9521f473531c3d8b80ff687636263eb (patch)
tree15b3097c1eaa14873681ee3f524b7b2d4ba1cd38
parent4594935f130aa2bd409bbabdbe335cedc0a9aa89 (diff)
downloadeclipse.platform.swt-8abd3686d9521f473531c3d8b80ff687636263eb.tar.gz
eclipse.platform.swt-8abd3686d9521f473531c3d8b80ff687636263eb.tar.xz
eclipse.platform.swt-8abd3686d9521f473531c3d8b80ff687636263eb.zip
Bug 540083 - [GTK3] Compare editor arrows broken on scroll
Git compare editor arrows does not render when scolling. This issue can be seen on Wayland at all times and on X11 after deprecating gdk_cairo_create(). This is because GTK cannot guarantee what you draw directly on a windowing surface is going to be rendered on screen. The fix is to queue draw events to ensure it gets rendered. Tested in child Eclipse on X11 and Wayland. Change-Id: I1125b324147f05f28637a824d02f95b8f203e0af Signed-off-by: Xi Yan <xixiyan@redhat.com>
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
index 96f95b146e..9d3ad22ce2 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
@@ -3479,6 +3479,13 @@ long /*int*/ gtk_draw (long /*int*/ widget, long /*int*/ cairo) {
sendEvent (SWT.Paint, event);
gc.dispose ();
event.gc = null;
+ /*
+ * Bug 540083: Git compare editor arrows does not render when scrolling. This is because GTK
+ * cannot guarantee what you draw directly on a windowing surface is going to be rendered on
+ * screen. The fix is to queue draw events to ensure it gets rendered.
+ * See https://mail.gnome.org/archives/gtk-app-devel-list/2017-January/msg00053.html
+ */
+ GTK.gtk_widget_queue_draw(widget);
return 0;
}

Back to the top