Reset effective_attrs when necessary

This fixes both bug 607217 and bug 607269.
This commit is contained in:
Matthias Clasen 2010-01-17 23:33:19 -05:00
parent 3fdcf3d3e2
commit b242c02e71

View File

@ -1865,23 +1865,21 @@ gtk_label_recalculate (GtkLabel *label)
guint keyval = label->mnemonic_keyval; guint keyval = label->mnemonic_keyval;
if (label->use_markup) if (label->use_markup)
{
gtk_label_set_markup_internal (label, label->label, label->use_underline); gtk_label_set_markup_internal (label, label->label, label->use_underline);
gtk_label_compose_effective_attrs (label);
}
else else
{ {
if (label->use_underline) if (label->use_underline)
{
gtk_label_set_uline_text_internal (label, label->label); gtk_label_set_uline_text_internal (label, label->label);
gtk_label_compose_effective_attrs (label);
}
else else
{ {
if (label->effective_attrs)
pango_attr_list_unref (label->effective_attrs);
label->effective_attrs = NULL;
gtk_label_set_text_internal (label, g_strdup (label->label)); gtk_label_set_text_internal (label, g_strdup (label->label));
}
}
gtk_label_compose_effective_attrs (label); gtk_label_compose_effective_attrs (label);
}
}
if (!label->use_underline) if (!label->use_underline)
label->mnemonic_keyval = GDK_VoidSymbol; label->mnemonic_keyval = GDK_VoidSymbol;