diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java | 5 |
1 files changed, 4 insertions, 1 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 60b74181bd..912e78f2b0 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 @@ void drawBackground (Control control, int /*long*/ window, int /*long*/ region, 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); |