static void set_painter (HTMLObject *o, HTMLPainter *painter) { HTMLFrame *frame; frame = HTML_FRAME (o); if (G_OBJECT_TYPE (GTK_HTML (frame->html)->engine->painter) != HTML_TYPE_PRINTER) { frame_set_gdk_painter (frame, GTK_HTML (frame->html)->engine->painter); } html_engine_set_painter (GTK_HTML (frame->html)->engine, G_OBJECT_TYPE (painter) != HTML_TYPE_PRINTER ? frame->gdk_painter : painter); }
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); } }