X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktreestore.c;h=21e7a205d95a941ab9e429cd1b9a649da6cf2b1e;hb=9f41970832b60f3cf6644dfbd154df7ec24f26ce;hp=773a2562d82d95f64dc86eaccf734017df5fd674;hpb=9ff75882c09c00b75d6e6e41f0d091800a08eb1b;p=~andy%2Fgtk diff --git a/gtk/gtktreestore.c b/gtk/gtktreestore.c index 773a2562d..21e7a205d 100644 --- a/gtk/gtktreestore.c +++ b/gtk/gtktreestore.c @@ -853,8 +853,7 @@ gtk_tree_store_real_set_value (GtkTreeStore *tree_store, if (! g_type_is_a (G_VALUE_TYPE (value), priv->column_headers[column])) { - if (! (g_value_type_compatible (G_VALUE_TYPE (value), priv->column_headers[column]) && - g_value_type_compatible (priv->column_headers[column], G_VALUE_TYPE (value)))) + if (! (g_value_type_transformable (G_VALUE_TYPE (value), priv->column_headers[column]))) { g_warning ("%s: Unable to convert from %s to %s\n", G_STRLOC, @@ -862,6 +861,8 @@ gtk_tree_store_real_set_value (GtkTreeStore *tree_store, g_type_name (priv->column_headers[column])); return retval; } + + g_value_init (&real_value, priv->column_headers[column]); if (!g_value_transform (value, &real_value)) { g_warning ("%s: Unable to make conversion from %s to %s\n", @@ -1265,14 +1266,14 @@ gtk_tree_store_remove (GtkTreeStore *tree_store, * @tree_store: A #GtkTreeStore * @iter: (out): An unset #GtkTreeIter to set to the new row * @parent: (allow-none): A valid #GtkTreeIter, or %NULL - * @position: position to insert the new row + * @position: position to insert the new row, or -1 for last * * Creates a new row at @position. If parent is non-%NULL, then the row will be * made a child of @parent. Otherwise, the row will be created at the toplevel. - * If @position is larger than the number of rows at that level, then the new - * row will be inserted to the end of the list. @iter will be changed to point - * to this new row. The row will be empty after this function is called. To - * fill in values, you need to call gtk_tree_store_set() or + * If @position is -1 or is larger than the number of rows at that level, then + * the new row will be inserted to the end of the list. @iter will be changed + * to point to this new row. The row will be empty after this function is + * called. To fill in values, you need to call gtk_tree_store_set() or * gtk_tree_store_set_value(). * **/ @@ -1582,7 +1583,7 @@ gtk_tree_store_insert_with_values (GtkTreeStore *tree_store, * @tree_store: A #GtkTreeStore * @iter: (out) (allow-none): An unset #GtkTreeIter to set the new row, or %NULL. * @parent: (allow-none): A valid #GtkTreeIter, or %NULL - * @position: position to insert the new row + * @position: position to insert the new row, or -1 for last * @columns: (array length=n_values): an array of column numbers * @values: (array length=n_values): an array of GValues * @n_values: the length of the @columns and @values arrays