X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcairo.c;h=954ae30f5448b40ecfb3bd0bd5691e9a8f9cd4d7;hb=48ec61d954cc032c773daf96851cf3b78f27b112;hp=a98df2e6c18bc1d59a4cb4033879fec09b905242;hpb=1ce85b11b168b2f82fa9babe9c549c5b449dd41a;p=pspp diff --git a/src/output/cairo.c b/src/output/cairo.c index a98df2e6c1..954ae30f54 100644 --- a/src/output/cairo.c +++ b/src/output/cairo.c @@ -249,9 +249,18 @@ apply_options (struct xr_driver *xr, struct string_map *o) { struct output_driver *d = &xr->driver; - int paper_width, paper_length; + int paper_width, paper_length, i; int font_points = parse_int (opt (d, o, "font-size", "10000"), 1000, 1000000); + + for (i = 0; i < XR_N_FONTS; i++) + { + struct xr_font *font = &xr->fonts[i]; + + if (font->desc != NULL) + pango_font_description_free (font->desc); + } + xr->fonts[XR_FONT_FIXED].desc = parse_font (d, o, "fixed-font", "monospace", font_points); xr->fonts[XR_FONT_PROPORTIONAL].desc = parse_font (d, o, "prop-font", @@ -313,7 +322,7 @@ xr_set_cairo (struct xr_driver *xr, cairo_t *cairo) cairo_set_line_width (xr->cairo, xr_to_pt (xr->line_width)); map = pango_cairo_font_map_get_default (); - context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (map)); + context = pango_font_map_create_context (map); if (xr_is_72dpi (cairo)) { /* Pango seems to always scale fonts according to the DPI specified @@ -377,14 +386,12 @@ xr_create (const char *file_name, enum settings_output_devices device_type, struct string_map *o, enum xr_output_type file_type) { enum { MIN_WIDTH = 3, MIN_LENGTH = 3 }; - struct output_driver *d; struct xr_driver *xr; cairo_surface_t *surface; cairo_status_t status; double width_pt, length_pt; xr = xr_allocate (file_name, device_type, o); - d = &xr->driver; width_pt = (xr->width + xr->left_margin + xr->right_margin) / 1000.0; length_pt = (xr->length + xr->top_margin + xr->bottom_margin) / 1000.0;