diff options
author | Silenio Quarti <silenio_quarti@ca.ibm.com> | 2012-11-29 11:16:03 -0500 |
---|---|---|
committer | Silenio Quarti <silenio_quarti@ca.ibm.com> | 2012-11-29 11:16:03 -0500 |
commit | 4953e90353cf03b7e9778bd8ad03e777e563314d (patch) | |
tree | c4c9f6653c5c906618ef7a7702ece985bc1b4f9e /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java | |
parent | 2eb0d57b46ef2fa0c4a9cfafa527354a559190cd (diff) | |
download | eclipse.platform.swt-4953e90353cf03b7e9778bd8ad03e777e563314d.tar.gz eclipse.platform.swt-4953e90353cf03b7e9778bd8ad03e777e563314d.tar.xz eclipse.platform.swt-4953e90353cf03b7e9778bd8ad03e777e563314d.zip |
Bug 392498 - GC.copyarea does not work correctly on linux
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java index bf42c7e6da..55b22a1bfb 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java @@ -486,6 +486,7 @@ public void copyArea(Image image, int x, int y) { long /*int*/ cairo = Cairo.cairo_create(image.surface); if (cairo == 0) SWT.error(SWT.ERROR_NO_HANDLES); Cairo.cairo_translate(cairo, -x, -y); + Cairo.cairo_push_group(cairo); if (data.image != null) { Cairo.cairo_set_source_surface(cairo, data.image.surface, 0, 0); } else if (data.drawable != 0) { @@ -502,10 +503,13 @@ public void copyArea(Image image, int x, int y) { Cairo.cairo_set_source_surface(cairo, srcSurface, 0, 0); } } else { + Cairo.cairo_destroy(cairo); return; } Cairo.cairo_set_operator(cairo, Cairo.CAIRO_OPERATOR_SOURCE); Cairo.cairo_paint(cairo); + Cairo.cairo_pop_group_to_source(cairo); + Cairo.cairo_paint(cairo); Cairo.cairo_destroy(cairo); return; } |