]> Pileus Git - ~andy/gtk/commitdiff
messagedialog: don't use gtk_widget_override_font()
authorCosimo Cecchi <cosimoc@gnome.org>
Wed, 18 Apr 2012 17:46:39 +0000 (13:46 -0400)
committerCosimo Cecchi <cosimoc@gnome.org>
Wed, 18 Apr 2012 17:46:39 +0000 (13:46 -0400)
Instead of overriding the font theme settings, just set the Pango
attributes we want on the label. This fixes message dialogs growing on
style_update after recent GTK+ changes.

gtk/gtkmessagedialog.c

index 8ead95243f72ef6450f06408a082ddd7e94e284f..3cc80538878953ef052a4d77f02c7ae7f4c7c0cc 100644 (file)
@@ -384,25 +384,27 @@ static void
 setup_primary_label_font (GtkMessageDialog *dialog)
 {
   GtkMessageDialogPrivate *priv = dialog->priv;
-  gint size;
-  PangoFontDescription *font_desc;
-  GtkStyleContext *context;
-  GtkStateFlags state;
-
-  /* unset the font settings */
-  gtk_widget_override_font (priv->label, NULL);
 
   if (priv->has_secondary_text && !priv->has_primary_markup)
     {
-      context = gtk_widget_get_style_context (priv->label);
-      state = gtk_widget_get_state_flags (priv->label);
-
-      size = pango_font_description_get_size (gtk_style_context_get_font (context, state));
-      font_desc = pango_font_description_new ();
-      pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
-      pango_font_description_set_size (font_desc, size * PANGO_SCALE_LARGE);
-      gtk_widget_override_font (priv->label, font_desc);
-      pango_font_description_free (font_desc);
+      PangoAttrList *attributes;
+      PangoAttribute *attr;
+
+      attributes = pango_attr_list_new ();
+
+      attr = pango_attr_weight_new (PANGO_WEIGHT_BOLD);
+      pango_attr_list_insert (attributes, attr);
+
+      attr = pango_attr_scale_new (PANGO_SCALE_LARGE);
+      pango_attr_list_insert (attributes, attr);
+
+      gtk_label_set_attributes (GTK_LABEL (priv->label), attributes);
+      pango_attr_list_unref (attributes);
+    }
+  else
+    {
+      /* unset the font settings */
+      gtk_label_set_attributes (GTK_LABEL (priv->label), NULL);
     }
 }
 
@@ -1007,7 +1009,5 @@ gtk_message_dialog_style_updated (GtkWidget *widget)
                                       MAX (0, border_width - 7));
     }
 
-  setup_primary_label_font (dialog);
-
   GTK_WIDGET_CLASS (gtk_message_dialog_parent_class)->style_updated (widget);
 }