From: Ben Pfaff Date: Wed, 30 Dec 2020 23:11:28 +0000 (-0800) Subject: cairo-fsm: Implement dashed lines. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e91782a2d25dec932c93b7a57bd03d836614ba43;hp=760c7f33dc6eec2ed8050f02d131edf8330da908;p=pspp cairo-fsm: Implement dashed lines. --- diff --git a/src/output/cairo-fsm.c b/src/output/cairo-fsm.c index 1602aae289..16cf47dec4 100644 --- a/src/output/cairo-fsm.c +++ b/src/output/cairo-fsm.c @@ -185,8 +185,6 @@ xr_draw_line (struct xr_fsm *xr, int x0, int y0, int x1, int y1, int style, const struct cell_color *color) { cairo_new_path (xr->cairo); - if (!xr->style->use_system_colors) - xr_set_source_rgba (xr->cairo, color); cairo_set_line_width ( xr->cairo, xr_to_pt (style == RENDER_LINE_THICK ? XR_LINE_WIDTH * 2 @@ -194,7 +192,14 @@ xr_draw_line (struct xr_fsm *xr, int x0, int y0, int x1, int y1, int style, : XR_LINE_WIDTH)); cairo_move_to (xr->cairo, xr_to_pt (x0), xr_to_pt (y0)); cairo_line_to (xr->cairo, xr_to_pt (x1), xr_to_pt (y1)); + + if (!xr->style->use_system_colors) + xr_set_source_rgba (xr->cairo, color); + if (style == RENDER_LINE_DASHED) + cairo_set_dash (xr->cairo, (double[]) { 2 }, 1, 0); cairo_stroke (xr->cairo); + if (style == RENDER_LINE_DASHED) + cairo_set_dash (xr->cairo, NULL, 0, 0); } static void UNUSED