summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2006-07-10 20:23:41 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2006-07-10 20:23:41 +0000
commitbd0dcaf874333fa30660ea8d109a274eb45b0e7e (patch)
tree3fe0b23208366e218ab0a0d52f2cdce7726786d0
parenta3c061607593b0e89d83d1a299efec6544a3f9f9 (diff)
downloadpango-bd0dcaf874333fa30660ea8d109a274eb45b0e7e.tar.gz
Bug 315599 – PangoAttribute remains in wrong context.
2006-07-10 Behdad Esfahbod <behdad@gnome.org> Bug 315599 – PangoAttribute remains in wrong context. * pango/pangocairo-render.c (_pango_cairo_do_glyph_string): Rever my commit that removed Owen's fix from last year!
-rw-r--r--ChangeLog7
-rw-r--r--pango/pangocairo-render.c19
2 files changed, 26 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 1d9ba35c..01df55e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2006-07-10 Behdad Esfahbod <behdad@gnome.org>
+ Bug 315599 – PangoAttribute remains in wrong context.
+
+ * pango/pangocairo-render.c (_pango_cairo_do_glyph_string): Rever my
+ commit that removed Owen's fix from last year!
+
+2006-07-10 Behdad Esfahbod <behdad@gnome.org>
+
Bug 163677 – pango_attr_list_splice: inconsistent docs
Patch from Morten Welinder
diff --git a/pango/pangocairo-render.c b/pango/pangocairo-render.c
index fb391f71..7b7b59ac 100644
--- a/pango/pangocairo-render.c
+++ b/pango/pangocairo-render.c
@@ -422,8 +422,27 @@ _pango_cairo_do_glyph_string (cairo_t *cr,
crenderer->cr = cr;
crenderer->do_path = do_path;
cairo_get_current_point (cr, &crenderer->x_offset, &crenderer->y_offset);
+
+ if (!do_path)
+ {
+ /* unset all part colors, since when drawing just a glyph string,
+ * prepare_run() isn't called.
+ */
+
+ pango_renderer_activate (renderer);
+
+ pango_renderer_set_color (renderer, PANGO_RENDER_PART_FOREGROUND, NULL);
+ pango_renderer_set_color (renderer, PANGO_RENDER_PART_BACKGROUND, NULL);
+ pango_renderer_set_color (renderer, PANGO_RENDER_PART_UNDERLINE, NULL);
+ pango_renderer_set_color (renderer, PANGO_RENDER_PART_STRIKETHROUGH, NULL);
+ }
pango_renderer_draw_glyphs (renderer, font, glyphs, 0, 0);
+
+ if (!do_path)
+ {
+ pango_renderer_deactivate (renderer);
+ }
if (G_UNLIKELY (unref_renderer))
g_object_unref (renderer);