summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/cairo
diff options
context:
space:
mode:
authorSilenio Quarti <silenio>2005-09-06 19:16:39 +0000
committerSilenio Quarti <silenio>2005-09-06 19:16:39 +0000
commit7a91c434da84ca54a870e84d52c0ff3c9bfec411 (patch)
tree1f89d4b696ccfdb43ef850a0085326331e8a0ae6 /bundles/org.eclipse.swt/Eclipse SWT/cairo
parentf9d39654f80c995598679f95dcc67dc075d8e147 (diff)
downloadeclipse.platform.swt-7a91c434da84ca54a870e84d52c0ff3c9bfec411.tar.gz
eclipse.platform.swt-7a91c434da84ca54a870e84d52c0ff3c9bfec411.tar.xz
eclipse.platform.swt-7a91c434da84ca54a870e84d52c0ff3c9bfec411.zip
108423
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/cairo')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/cairo/org/eclipse/swt/graphics/Path.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/cairo/org/eclipse/swt/graphics/Path.java b/bundles/org.eclipse.swt/Eclipse SWT/cairo/org/eclipse/swt/graphics/Path.java
index c68d39c4be..12924bc4e6 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/cairo/org/eclipse/swt/graphics/Path.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/cairo/org/eclipse/swt/graphics/Path.java
@@ -103,12 +103,20 @@ public void addArc(float x, float y, float width, float height, float startAngle
if (isDisposed()) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
move = true;
if (width == height) {
- Cairo.cairo_arc_negative(handle, x + width / 2f, y + height / 2f, width / 2f, -startAngle * (float)Compatibility.PI / 180, -(startAngle + arcAngle) * (float)Compatibility.PI / 180);
+ if (arcAngle >= 0) {
+ Cairo.cairo_arc_negative(handle, x + width / 2f, y + height / 2f, width / 2f, -startAngle * (float)Compatibility.PI / 180, -(startAngle + arcAngle) * (float)Compatibility.PI / 180);
+ } else {
+ Cairo.cairo_arc(handle, x + width / 2f, y + height / 2f, width / 2f, -startAngle * (float)Compatibility.PI / 180, -(startAngle + arcAngle) * (float)Compatibility.PI / 180);
+ }
} else {
Cairo.cairo_save(handle);
Cairo.cairo_translate(handle, x + width / 2f, y + height / 2f);
Cairo.cairo_scale(handle, width / 2f, height / 2f);
- Cairo.cairo_arc_negative(handle, 0, 0, 1, -startAngle * (float)Compatibility.PI / 180, -(startAngle + arcAngle) * (float)Compatibility.PI / 180);
+ if (arcAngle >= 0) {
+ Cairo.cairo_arc_negative(handle, 0, 0, 1, -startAngle * (float)Compatibility.PI / 180, -(startAngle + arcAngle) * (float)Compatibility.PI / 180);
+ } else {
+ Cairo.cairo_arc(handle, 0, 0, 1, -startAngle * (float)Compatibility.PI / 180, -(startAngle + arcAngle) * (float)Compatibility.PI / 180);
+ }
Cairo.cairo_restore(handle);
}
}