diff options
author | Silenio Quarti <silenio> | 2005-09-06 19:16:39 +0000 |
---|---|---|
committer | Silenio Quarti <silenio> | 2005-09-06 19:16:39 +0000 |
commit | 7a91c434da84ca54a870e84d52c0ff3c9bfec411 (patch) | |
tree | 1f89d4b696ccfdb43ef850a0085326331e8a0ae6 /bundles/org.eclipse.swt/Eclipse SWT/cairo | |
parent | f9d39654f80c995598679f95dcc67dc075d8e147 (diff) | |
download | eclipse.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.java | 12 |
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); } } |