예제 #1
0
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;
}
예제 #2
0
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);
	}

}