From 4c1bc91ccf7aef152b9c50294d77cbe535632b88 Mon Sep 17 00:00:00 2001 From: "tor%cs.brown.edu" Date: Wed, 30 Mar 2005 17:32:16 +0000 Subject: [PATCH] Bug 285475 - fix cairo calculation of stroke extents on lines with caps. --- gfx/cairo/README | 2 ++ gfx/cairo/cairo/src/cairo_gstate.c | 2 ++ gfx/cairo/stroke-extent.diff | 21 +++++++++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 gfx/cairo/stroke-extent.diff diff --git a/gfx/cairo/README b/gfx/cairo/README index 9441fa73184d..4afe230104fd 100644 --- a/gfx/cairo/README +++ b/gfx/cairo/README @@ -17,3 +17,5 @@ PATCHES: quartz.diff - update cairo quartz/atsui backend for 0.4.0, reenable. xlib.diff - include X11/xlib.h in cairo-xlib.h - needed for Solaris. + + stroke-extent.diff - fix calculation of stroke extents. diff --git a/gfx/cairo/cairo/src/cairo_gstate.c b/gfx/cairo/cairo/src/cairo_gstate.c index d6db560a37f3..42c20711a4fd 100644 --- a/gfx/cairo/cairo/src/cairo_gstate.c +++ b/gfx/cairo/cairo/src/cairo_gstate.c @@ -1700,6 +1700,8 @@ _cairo_gstate_stroke_extents (cairo_gstate_t *gstate, cairo_status_t status; cairo_traps_t traps; cairo_box_t extents; + + _cairo_pen_init (&gstate->pen_regular, gstate->line_width / 2.0, gstate); _cairo_traps_init (&traps); diff --git a/gfx/cairo/stroke-extent.diff b/gfx/cairo/stroke-extent.diff new file mode 100644 index 000000000000..f0e3dae841d7 --- /dev/null +++ b/gfx/cairo/stroke-extent.diff @@ -0,0 +1,21 @@ +--- cairo-0.4.0/src/cairo_gstate.c 2005-03-04 11:57:53.000000000 -0600 ++++ cairo/src/cairo_gstate.c 2005-03-30 11:16:57.576419878 -0600 +@@ -1695,16 +1695,18 @@ _cairo_gstate_show_page (cairo_gstate_t + cairo_status_t + _cairo_gstate_stroke_extents (cairo_gstate_t *gstate, + double *x1, double *y1, + double *x2, double *y2) + { + cairo_status_t status; + cairo_traps_t traps; + cairo_box_t extents; ++ ++ _cairo_pen_init (&gstate->pen_regular, gstate->line_width / 2.0, gstate); + + _cairo_traps_init (&traps); + + status = _cairo_path_stroke_to_traps (&gstate->path, gstate, &traps); + if (status) + goto BAIL; + + _cairo_traps_extents (&traps, &extents);