diff options
author | Silenio <Silenio_Quarti@ca.ibm.com> | 2011-09-20 10:59:06 -0400 |
---|---|---|
committer | Silenio <Silenio_Quarti@ca.ibm.com> | 2011-09-20 10:59:06 -0400 |
commit | 78b034106c080360cc188a981bb53f8356762fbe (patch) | |
tree | d73b3770e92d4cf76efe8deb9f93a7618bf8ef58 /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java | |
parent | d089b2cf79ce87d2a82f677ea1a4ce5a5ba9d4a4 (diff) | |
download | eclipse.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.java | 8 |
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); |