Fix drawBackground for Tree/Table with clipping
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 60b7418..912e78f 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
@@ -112,7 +112,10 @@
 	if (OS.USE_CAIRO) {
 		int /*long*/ cairo = OS.gdk_cairo_create(window);
 		if (cairo == 0) error (SWT.ERROR_NO_HANDLES);
-		if (region != 0) OS.gdk_cairo_region(cairo, region);
+		if (region != 0) {
+			OS.gdk_cairo_region(cairo, region);
+			Cairo.cairo_clip(cairo);
+		}
 		if (control.backgroundImage != null) {
 			Point pt = display.map (this, control, 0, 0);
 			Cairo.cairo_translate (cairo, -pt.x, -pt.y);