summaryrefslogtreecommitdiff
path: root/gtk/gtkprintcontext.c
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2007-05-23 03:19:37 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2007-05-23 03:19:37 +0000
commit4fd4f44d8e24bdcf118dfe41409268ea68bd7e64 (patch)
treeb8c1b9ffe152db8cd2b14b356d0f49bbfcd4b1d6 /gtk/gtkprintcontext.c
parentf8068767f29404dba2bf9efb4aaec644d009aadc (diff)
downloadgtk+-4fd4f44d8e24bdcf118dfe41409268ea68bd7e64.tar.gz
Don't create new pango fontmaps. Use the default pangocairo fontmap and
2007-05-22 Behdad Esfahbod <behdad@gnome.org> * gtk/gtkprintcontext.c (gtk_print_context_finalize), (_gtk_print_context_new), (_gtk_print_context_get_fontmap), (gtk_print_context_set_cairo_context), (gtk_print_context_get_pango_fontmap), (gtk_print_context_create_pango_context): Don't create new pango fontmaps. Use the default pangocairo fontmap and set resolution on PangoContext instead. (#417707) svn path=/trunk/; revision=17893
Diffstat (limited to 'gtk/gtkprintcontext.c')
-rw-r--r--gtk/gtkprintcontext.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/gtk/gtkprintcontext.c b/gtk/gtkprintcontext.c
index b776240811..c280881f80 100644
--- a/gtk/gtkprintcontext.c
+++ b/gtk/gtkprintcontext.c
@@ -38,7 +38,6 @@ struct _GtkPrintContext
GtkPrintOperation *op;
cairo_t *cr;
GtkPageSetup *page_setup;
- PangoFontMap *fontmap;
gdouble surface_dpi_x;
gdouble surface_dpi_y;
@@ -59,7 +58,6 @@ gtk_print_context_finalize (GObject *object)
{
GtkPrintContext *context = GTK_PRINT_CONTEXT (object);
- g_object_unref (context->fontmap);
if (context->page_setup)
g_object_unref (context->page_setup);
@@ -92,10 +90,16 @@ _gtk_print_context_new (GtkPrintOperation *op)
context->op = op;
context->cr = NULL;
- context->fontmap = pango_cairo_font_map_new ();
return context;
}
+
+static PangoFontMap *
+_gtk_print_context_get_fontmap (GtkPrintContext *context)
+{
+ return pango_cairo_font_map_get_default ();
+}
+
/**
* gtk_print_context_set_cairo_context:
* @context: a #GtkPrintContext
@@ -149,12 +153,6 @@ gtk_print_context_set_cairo_context (GtkPrintContext *context,
cairo_scale (context->cr,
context->pixels_per_unit_x,
context->pixels_per_unit_y);
-
- /* We use the unit-scaled resolution, as we still want
- * fonts given in points to work
- */
- pango_cairo_font_map_set_resolution (PANGO_CAIRO_FONT_MAP (context->fontmap),
- dpi_y / context->pixels_per_unit_y);
}
@@ -391,7 +389,7 @@ gtk_print_context_get_pango_fontmap (GtkPrintContext *context)
{
g_return_val_if_fail (GTK_IS_PRINT_CONTEXT (context), NULL);
- return context->fontmap;
+ return _gtk_print_context_get_fontmap (context);
}
/**
@@ -413,13 +411,18 @@ gtk_print_context_create_pango_context (GtkPrintContext *context)
g_return_val_if_fail (GTK_IS_PRINT_CONTEXT (context), NULL);
- pango_context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (context->fontmap));
+ pango_context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (_gtk_print_context_get_fontmap (context)));
options = cairo_font_options_create ();
cairo_font_options_set_hint_metrics (options, CAIRO_HINT_METRICS_OFF);
pango_cairo_context_set_font_options (pango_context, options);
cairo_font_options_destroy (options);
+ /* We use the unit-scaled resolution, as we still want
+ * fonts given in points to work
+ */
+ pango_cairo_context_set_resolution (pango_context,
+ context->surface_dpi_y / context->pixels_per_unit_y);
return pango_context;
}