summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java
diff options
context:
space:
mode:
authorSilenio <Silenio_Quarti@ca.ibm.com>2011-09-20 10:59:06 -0400
committerSilenio <Silenio_Quarti@ca.ibm.com>2011-09-20 10:59:06 -0400
commit78b034106c080360cc188a981bb53f8356762fbe (patch)
treed73b3770e92d4cf76efe8deb9f93a7618bf8ef58 /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java
parentd089b2cf79ce87d2a82f677ea1a4ce5a5ba9d4a4 (diff)
downloadeclipse.platform.swt-78b034106c080360cc188a981bb53f8356762fbe.tar.gz
eclipse.platform.swt-78b034106c080360cc188a981bb53f8356762fbe.tar.xz
eclipse.platform.swt-78b034106c080360cc188a981bb53f8356762fbe.zip
Bug354978 - work in progress - all images are cairo images surfaces
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.java8
1 files changed, 6 insertions, 2 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 298ad0b212..1849226e9a 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
@@ -2854,7 +2854,11 @@ void initCairo() {
data.cairo = cairo = Cairo.cairo_create(surface);
Cairo.cairo_surface_destroy(surface);
} else {
- data.cairo = cairo = OS.gdk_cairo_create(data.drawable);
+ if (OS.USE_CAIRO_SURFACE && data.image != null) {
+ data.cairo = cairo = Cairo.cairo_create(data.image.surface);
+ } else {
+ data.cairo = cairo = OS.gdk_cairo_create(data.drawable);
+ }
}
if (cairo == 0) SWT.error(SWT.ERROR_NO_HANDLES);
data.disposeCairo = true;
@@ -3163,7 +3167,7 @@ static void setCairoPatternColor(int /*long*/ pattern, int offset, Color c, int
void setCairoClip(int /*long*/ damageRgn, int /*long*/ clipRgn) {
int /*long*/ cairo = data.cairo;
- if (OS.GTK_VERSION < OS.VERSION(2,18,0)) {
+ if (OS.GTK_VERSION < OS.VERSION(2,18,0) || data.drawable == 0) {
Cairo.cairo_reset_clip(cairo);
} else {
OS.gdk_cairo_reset_clip(cairo, data.drawable);