[gtk+] label: Split out function that merges attr lists



commit dd4df2438214b0f662666c2fc0feb12007ba4444
Author: Benjamin Otte <otte redhat com>
Date:   Fri Jan 6 02:53:12 2012 +0100

    label: Split out function that merges attr lists

 gtk/gtklabel.c |   46 +++++++++++++++++++++++++++-------------------
 1 files changed, 27 insertions(+), 19 deletions(-)
---
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index c8e69fa..8ee4a7e 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -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);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]