summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBertram Felgenhauer <int-e@gmx.de>2009-03-26 04:56:27 +0100
committerBertram Felgenhauer <int-e@gmx.de>2009-03-26 04:56:27 +0100
commit53107de63a954105f8820e5b96e2a1956cb7af8c (patch)
tree7bcb991d01fa23bbc28f418c6fefc055cd92a27c /src
parent578b06a978d51dc3d1d844ee7eea9ddd8329cc8d (diff)
[in_fill] Correctly track current point in curve_to.
When discarding a bezier path segment, we still need to update the current point.
Diffstat (limited to 'src')
-rw-r--r--src/cairo-path-in-fill.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cairo-path-in-fill.c b/src/cairo-path-in-fill.c
index 21cd0bdb..d43b1caa 100644
--- a/src/cairo-path-in-fill.c
+++ b/src/cairo-path-in-fill.c
@@ -184,15 +184,19 @@ _cairo_in_fill_curve_to (void *closure,
if (c->y > bot) bot = c->y;
if (d->y < top) top = d->y;
if (d->y > bot) bot = d->y;
- if (bot < in_fill->y || top > in_fill->y)
+ if (bot < in_fill->y || top > in_fill->y) {
+ in_fill->current_point = *d;
return CAIRO_STATUS_SUCCESS;
+ }
left = in_fill->current_point.x;
if (b->x < left) left = b->x;
if (c->x < left) left = c->x;
if (d->x < left) left = d->x;
- if (left > in_fill->x)
+ if (left > in_fill->x) {
+ in_fill->current_point = *d;
return CAIRO_STATUS_SUCCESS;
+ }
/* XXX Investigate direct inspection of the inflections? */
if (! _cairo_spline_init (&spline,