Bug 421127 - form editor painting issue
Change-Id: I44ba20e832e52903b28c23d62b7d574c7416e9e7
Signed-off-by: Snjezana Peco <snjeza.peco@gmail.com>
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 7fac835..ec9a008 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
@@ -3165,8 +3165,8 @@
if (OS.GTK_VERSION <= OS.VERSION(3, 9, 0)) {
data.cairo = cairo;
}
-
GC gc = event.gc = GC.gtk_new (this, data);
+ gc.setClipping(rect.x, rect.y, rect.width, rect.height);
drawWidget (gc);
sendEvent (SWT.Paint, event);
gc.dispose ();
@@ -5484,7 +5484,12 @@
GdkRectangle rect = new GdkRectangle ();
OS.gdk_cairo_get_clip_rectangle (cairo, rect);
if (control == null) control = this;
- drawBackground (control, 0, cairo, 0, rect.x, rect.y, rect.width, rect.height);
+ long window = OS.gtk_widget_get_window(handle);
+ if (window != 0) {
+ drawBackground (control, window, 0, 0, rect.x, rect.y, rect.width, rect.height);
+ } else {
+ drawBackground (control, 0, cairo, 0, rect.x, rect.y, rect.width, rect.height);
+ }
} else {
GdkEventExpose gdkEvent = new GdkEventExpose ();
OS.memmove (gdkEvent, arg0, GdkEventExpose.sizeof);