X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcairo.c;h=ef0b593233e67f7e03867926d35753536314166f;hb=38f1759deae638712ed86675914c123ffb04f5ba;hp=c7188af0b60a1ab24cc15f30296ee8916d442495;hpb=4246294842a8abedecaaf55aa87507225f03f58c;p=pspp diff --git a/src/output/cairo.c b/src/output/cairo.c index c7188af0b6..ef0b593233 100644 --- a/src/output/cairo.c +++ b/src/output/cairo.c @@ -1308,7 +1308,7 @@ xr_rendering_create_text (struct xr_driver *xr, const char *text, cairo_t *cr) return r; } -void +void xr_rendering_apply_options (struct xr_rendering *xr, struct string_map *o) { if (is_table_item (xr->item)) @@ -1542,13 +1542,20 @@ xr_chart_render (struct xr_render_fsm *fsm, struct xr_driver *xr) { struct xr_chart_state *cs = UP_CAST (fsm, struct xr_chart_state, fsm); - if (xr->y > 0) + const int chart_height = 0.8 * (xr->length < xr->width ? xr->length : xr->width); + + if (xr->y > xr->length - chart_height) return true; if (xr->cairo != NULL) - xr_draw_chart (cs->chart_item, xr->cairo, 0.0, 0.0, - xr_to_pt (xr->width), xr_to_pt (xr->length)); - xr->y = xr->length; + { + xr_draw_chart (cs->chart_item, xr->cairo, + 0.0, + xr_to_pt (xr->y), + xr_to_pt (xr->width), + xr_to_pt (chart_height)); + } + xr->y += chart_height; return false; }