]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtktreemodelsort.c
gtk/gtktreemodelsort.c typo in docs for
[~andy/gtk] / gtk / gtktreemodelsort.c
index 91851e50e8c08a9eb5cda55d7cf5829c952fad4a..6ae397e68340386ca3dc360f03943840d95f85b1 100644 (file)
@@ -1287,7 +1287,12 @@ gtk_tree_model_sort_set_sort_func (GtkTreeSortable        *sortable,
     }
 
   if (header->destroy)
-    (* header->destroy) (header->data);
+    {
+      GtkDestroyNotify d = header->destroy;
+
+      header->destroy = NULL;
+      d (header->data);
+    }
 
   header->func = func;
   header->data = data;
@@ -1305,7 +1310,12 @@ gtk_tree_model_sort_set_default_sort_func (GtkTreeSortable        *sortable,
   g_return_if_fail (GTK_IS_TREE_MODEL_SORT (sortable));
 
   if (tree_model_sort->default_sort_destroy)
-    (* tree_model_sort->default_sort_destroy) (tree_model_sort->default_sort_data);
+    {
+      GtkDestroyNotify d = tree_model_sort->default_sort_destroy;
+
+      tree_model_sort->default_sort_destroy = NULL;
+      d (tree_model_sort->default_sort_data);
+    }
 
   tree_model_sort->default_sort_func = func;
   tree_model_sort->default_sort_data = data;
@@ -1653,6 +1663,12 @@ gtk_tree_model_sort_insert_value (GtkTreeModelSort *tree_model_sort,
   elt.ref_count = 0;
   elt.children = NULL;
 
+  /* update all larger offsets */
+  tmp_elt = SORT_ELT (level->array->data);
+  for (i = 0; i < level->array->len; i++, tmp_elt++)
+    if (tmp_elt->offset >= offset)
+      tmp_elt->offset++;
+
   if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID &&
       tree_model_sort->default_sort_func == NO_SORT_FUNC)
     index = offset;
@@ -1662,16 +1678,10 @@ gtk_tree_model_sort_insert_value (GtkTreeModelSort *tree_model_sort,
                                                    FALSE);
 
   g_array_insert_vals (level->array, index, &elt, 1);
-
-  /* update all larger offsets */
   tmp_elt = SORT_ELT (level->array->data);
   for (i = 0; i < level->array->len; i++, tmp_elt++)
-    {
-      if ((tmp_elt->offset >= offset) && i != index)
-       tmp_elt->offset++;
-      if (tmp_elt->children)
-       tmp_elt->children->parent_elt = tmp_elt;
-    }
+    if (tmp_elt->children)
+      tmp_elt->children->parent_elt = tmp_elt;
 
   return TRUE;
 }
@@ -1975,7 +1985,7 @@ gtk_tree_model_sort_convert_path_to_child_path (GtkTreeModelSort *tree_model_sor
  * @child_iter: An uninitialized #GtkTreeIter
  * @sorted_iter: A valid #GtkTreeIter pointing to a row on @tree_model_sort.
  * 
- * Sets @child_iter to point to the row pointed to by *sorted_iter.
+ * Sets @child_iter to point to the row pointed to by @sorted_iter.
  **/
 void
 gtk_tree_model_sort_convert_iter_to_child_iter (GtkTreeModelSort *tree_model_sort,
@@ -2187,7 +2197,12 @@ gtk_tree_model_sort_reset_default_sort_func (GtkTreeModelSort *tree_model_sort)
   g_return_if_fail (GTK_IS_TREE_MODEL_SORT (tree_model_sort));
 
   if (tree_model_sort->default_sort_destroy)
-    (* tree_model_sort->default_sort_destroy) (tree_model_sort->default_sort_data);
+    {
+      GtkDestroyNotify d = tree_model_sort->default_sort_destroy;
+
+      tree_model_sort->default_sort_destroy = NULL;
+      d (tree_model_sort->default_sort_data);
+    }
 
   tree_model_sort->default_sort_func = NO_SORT_FUNC;
   tree_model_sort->default_sort_data = NULL;