diff options
author | Bertram Felgenhauer <int-e@gmx.de> | 2009-03-26 04:56:27 +0100 |
---|---|---|
committer | Bertram Felgenhauer <int-e@gmx.de> | 2009-03-26 04:56:27 +0100 |
commit | 53107de63a954105f8820e5b96e2a1956cb7af8c (patch) | |
tree | 7bcb991d01fa23bbc28f418c6fefc055cd92a27c /src | |
parent | 578b06a978d51dc3d1d844ee7eea9ddd8329cc8d (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.c | 8 |
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, |