]> Pileus Git - ~andy/gtk/commitdiff
GtkLabel: make patterns work a little better
authorMatthias Clasen <mclasen@redhat.com>
Sun, 4 Sep 2011 03:59:40 +0000 (23:59 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 4 Sep 2011 04:01:37 +0000 (00:01 -0400)
When a pattern has been set, we must not throw away
the attributes that contain it.

https://bugzilla.gnome.org/show_bug.cgi?id=658111

gtk/gtklabel.c

index 0bb962c1ac68151728251182cd2da8bcf59afe9d..70b513eab097faf3257b2a8d9d4959cc8a370d1a 100644 (file)
@@ -250,7 +250,7 @@ struct _GtkLabelPrivate
 
   gdouble  angle;
 
-  guint     mnemonics_visible : 1;
+  guint    mnemonics_visible  : 1;
   guint    jtype              : 2;
   guint    wrap               : 1;
   guint    use_underline      : 1;
@@ -2098,17 +2098,17 @@ gtk_label_recalculate (GtkLabel *label)
 
   if (priv->use_markup)
     gtk_label_set_markup_internal (label, priv->label, priv->use_underline);
+  else if (priv->use_underline)
+    gtk_label_set_uline_text_internal (label, priv->label);
   else
     {
-      if (priv->use_underline)
-       gtk_label_set_uline_text_internal (label, priv->label);
-      else
+      if (!priv->pattern_set)
         {
           if (priv->effective_attrs)
             pango_attr_list_unref (priv->effective_attrs);
           priv->effective_attrs = NULL;
-          gtk_label_set_text_internal (label, g_strdup (priv->label));
         }
+      gtk_label_set_text_internal (label, g_strdup (priv->label));
     }
 
   gtk_label_compose_effective_attrs (label);