style: Fix drawing of insensitive text

When writing the original code I erroneously assumed that the current
point of the cairo context would be saved by cairo_save/restore(), but
of course the current point is part of the path and therefor isn't
saved.

Also do a cairo_new_path() before rendering any text so that we are sure
the text ends up at the right spot.
This commit is contained in:
Benjamin Otte 2010-09-12 15:55:57 +02:00
parent 08dd02fe25
commit 66e860b5d1

View File

@ -4227,13 +4227,14 @@ gtk_default_draw_layout (GtkStyle *style,
else
cairo_translate (cr, x, y);
cairo_new_path (cr);
if (state_type == GTK_STATE_INSENSITIVE)
{
cairo_save (cr);
gdk_cairo_set_source_color (cr, &style->white);
cairo_move_to (cr, 1, 1);
_gtk_pango_fill_layout (cr, layout);
cairo_restore (cr);
cairo_new_path (cr);
}
gc = use_text ? &style->text[state_type] : &style->fg[state_type];