static gboolean destroy_font_set_foreach (gpointer key, gpointer font_set, gpointer data) { g_free (key); html_font_set_unref (font_set, HTML_PAINTER (data)); return TRUE; }
static void set_format (GtkHTML *html, gboolean format_html) { HTMLGdkPainter *p, *old_p; gtk_widget_ensure_style (GTK_WIDGET (html)); if (!plain_painter) { gdk_painter = HTML_GDK_PAINTER (html->engine->painter); plain_painter = HTML_GDK_PAINTER (html_plain_painter_new (GTK_WIDGET (html), TRUE)); g_object_ref (G_OBJECT (gdk_painter)); } if (format_html) { p = gdk_painter; old_p = plain_painter; } else { p = plain_painter; old_p = gdk_painter; } if (html->engine->painter != (HTMLPainter *) p) { html_gdk_painter_unrealize (old_p); if (html->engine->window) html_gdk_painter_realize (p, html->engine->window); html_font_manager_set_default (&HTML_PAINTER (p)->font_manager, HTML_PAINTER (old_p)->font_manager.variable.face, HTML_PAINTER (old_p)->font_manager.fixed.face, HTML_PAINTER (old_p)->font_manager.var_size, HTML_PAINTER (old_p)->font_manager.var_points, HTML_PAINTER (old_p)->font_manager.fix_size, HTML_PAINTER (old_p)->font_manager.fix_points); html_engine_set_painter (html->engine, HTML_PAINTER (p)); html_engine_schedule_redraw (html->engine); } }