diff options
author | Xi Yan | 2018-10-12 17:37:29 +0000 |
---|---|---|
committer | Xi Yan | 2018-10-12 17:37:29 +0000 |
commit | 8abd3686d9521f473531c3d8b80ff687636263eb (patch) | |
tree | 15b3097c1eaa14873681ee3f524b7b2d4ba1cd38 | |
parent | 4594935f130aa2bd409bbabdbe335cedc0a9aa89 (diff) | |
download | eclipse.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.java | 7 |
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; } |