]> Pileus Git - ~andy/gtk/commitdiff
label: Split out function that merges attr lists
authorBenjamin Otte <otte@redhat.com>
Fri, 6 Jan 2012 01:53:12 +0000 (02:53 +0100)
committerBenjamin Otte <otte@redhat.com>
Fri, 6 Jan 2012 04:23:42 +0000 (05:23 +0100)
gtk/gtklabel.c

index c8e69fa43f3af0287c2e128557fad82d2bf6f844..8ee4a7eaaea38fccaa1d8ba892011b6a6c691bbc 100644 (file)
@@ -2035,33 +2035,41 @@ gtk_label_set_use_underline_internal (GtkLabel *label,
 }
 
 static void
-gtk_label_compose_effective_attrs (GtkLabel *label)
+my_pango_attr_list_merge (PangoAttrList *into,
+                          PangoAttrList *from)
 {
-  GtkLabelPrivate      *priv = label->priv;
   PangoAttrIterator *iter;
   PangoAttribute    *attr;
   GSList            *iter_attrs, *l;
 
+  iter = pango_attr_list_get_iterator (into);
+
+  if (iter)
+    {
+      do
+        {
+          iter_attrs = pango_attr_iterator_get_attrs (iter);
+          for (l = iter_attrs; l; l = l->next)
+            {
+              attr = l->data;
+              pango_attr_list_insert (from, attr);
+            }
+          g_slist_free (iter_attrs);
+        }
+      while (pango_attr_iterator_next (iter));
+      pango_attr_iterator_destroy (iter);
+    }
+}
+
+static void
+gtk_label_compose_effective_attrs (GtkLabel *label)
+{
+  GtkLabelPrivate *priv = label->priv;
+
   if (priv->attrs)
     {
       if (priv->effective_attrs)
-       {
-         if ((iter = pango_attr_list_get_iterator (priv->attrs)))
-           {
-             do
-               {
-                 iter_attrs = pango_attr_iterator_get_attrs (iter);
-                 for (l = iter_attrs; l; l = l->next)
-                   {
-                     attr = l->data;
-                     pango_attr_list_insert (priv->effective_attrs, attr);
-                   }
-                 g_slist_free (iter_attrs);
-               }
-             while (pango_attr_iterator_next (iter));
-             pango_attr_iterator_destroy (iter);
-           }
-       }
+        my_pango_attr_list_merge (priv->effective_attrs, priv->attrs);
       else
        priv->effective_attrs =
          pango_attr_list_ref (priv->attrs);