[gtk+/treeview-refactor] Fixed gtk_cell_area_box_context_copy() to also copy it's allocations.



commit 41cd9d139412c0d7077c9432431b6c42a0209756
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date:   Mon Dec 13 15:37:12 2010 +0900

    Fixed gtk_cell_area_box_context_copy() to also copy it's allocations.

 gtk/gtkcellareaboxcontext.c |   50 +++++++++++++++++++++++++-----------------
 1 files changed, 30 insertions(+), 20 deletions(-)
---
diff --git a/gtk/gtkcellareaboxcontext.c b/gtk/gtkcellareaboxcontext.c
index fbf6ffe..fe61b45 100644
--- a/gtk/gtkcellareaboxcontext.c
+++ b/gtk/gtkcellareaboxcontext.c
@@ -527,27 +527,37 @@ for_size_copy (gpointer    key,
 
 GtkCellAreaBoxContext *
 gtk_cell_area_box_context_copy (GtkCellAreaBox        *box,
-				GtkCellAreaBoxContext *box_context)
+				GtkCellAreaBoxContext *context)
 {
-  GtkCellAreaBoxContext *context;
-
-  context = g_object_new (GTK_TYPE_CELL_AREA_BOX_CONTEXT, 
-			  "area", box, NULL);
-
-  gtk_cell_area_box_init_groups (context, 
-				 box_context->priv->base_widths->len,
-				 box_context->priv->expand);
-
-  /* Copy all the arrays */
-  copy_size_array (box_context->priv->base_widths, 
-		   context->priv->base_widths);
-  copy_size_array (box_context->priv->base_heights, 
-		   context->priv->base_heights);
-
-  g_hash_table_foreach (box_context->priv->heights,
-			(GHFunc)for_size_copy, context->priv->heights);
-  g_hash_table_foreach (box_context->priv->widths,
-			(GHFunc)for_size_copy, context->priv->widths);
+  GtkCellAreaBoxContext *copy;
+
+  copy = g_object_new (GTK_TYPE_CELL_AREA_BOX_CONTEXT, 
+		       "area", box, NULL);
+
+  gtk_cell_area_box_init_groups (copy, 
+				 context->priv->base_widths->len,
+				 context->priv->expand);
+
+  /* Copy the base arrays */
+  copy_size_array (context->priv->base_widths, 
+		   copy->priv->base_widths);
+  copy_size_array (context->priv->base_heights, 
+		   copy->priv->base_heights);
+
+  /* Copy each for size */
+  g_hash_table_foreach (context->priv->heights,
+			(GHFunc)for_size_copy, copy->priv->heights);
+  g_hash_table_foreach (context->priv->widths,
+			(GHFunc)for_size_copy, copy->priv->widths);
+
+  /* Copy any active allocation */
+  copy->priv->n_orientation_allocs = 
+    context->priv->n_orientation_allocs;
+
+  if (copy->priv->n_orientation_allocs)
+    copy->priv->orientation_allocs = 
+      g_memdup (context->priv->orientation_allocs, 
+		copy->priv->n_orientation_allocs * sizeof (GtkCellAreaBoxAllocation));
 
   return context;
 }



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