eclipse/eclipse-bug-463615.patch

52 lines
2.1 KiB
Diff

diff --git a/eclipse.platform.swt/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 de2dcd9..bea9439 100644
--- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
@@ -5570,7 +5570,13 @@ void update (boolean all, boolean flush) {
if (!gtk_widget_get_realized (handle)) return;
long /*int*/ window = paintWindow ();
if (flush) display.flushExposes (window, all);
- OS.gdk_window_process_updates (window, all);
+ /*
+ * Do not send expose events on GTK 3.16.0+
+ * It's worth checking whether can be removed on all GTK 3 versions.
+ */
+ if (OS.GTK_VERSION < OS.VERSION(3, 16, 0)) {
+ OS.gdk_window_process_updates (window, all);
+ }
OS.gdk_flush ();
}
diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
index 92a7a2d..7d19307 100644
--- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
@@ -12,10 +12,10 @@ package org.eclipse.swt.widgets;
import org.eclipse.swt.*;
+import org.eclipse.swt.graphics.*;
import org.eclipse.swt.internal.*;
import org.eclipse.swt.internal.cairo.*;
import org.eclipse.swt.internal.gtk.*;
-import org.eclipse.swt.graphics.*;
/**
* Instances of this class are responsible for managing the
@@ -4657,7 +4657,13 @@ static int untranslateKey (int key) {
public void update () {
checkDevice ();
flushExposes (0, true);
- OS.gdk_window_process_all_updates ();
+ /*
+ * Do not send expose events on GTK 3.16.0+
+ * It's worth checking whether can be removed on all GTK 3 versions.
+ */
+ if (OS.GTK_VERSION < OS.VERSION(3, 16, 0)) {
+ OS.gdk_window_process_all_updates ();
+ }
}
/**