summaryrefslogtreecommitdiff
path: root/gtk/gtktreestore.c
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2002-03-08 19:40:15 +0000
committerKristian Rietveld <kristian@src.gnome.org>2002-03-08 19:40:15 +0000
commitf18a6f79d75bb5d16a9cbd825deb49b45c79ee32 (patch)
tree86bf4ef77bfabfec23bcb2cdf7b1591559d30d75 /gtk/gtktreestore.c
parent9c6d85da2bd26dcaec9101a1fab61ff4563d28f5 (diff)
downloadgtk+-f18a6f79d75bb5d16a9cbd825deb49b45c79ee32.tar.gz
handle gtk-tree-model-drop-append like the ListStore, includes some tweaks
Fri Mar 8 20:41:51 2002 Kristian Rietveld <kris@gtk.org> * gtk/gtktreestore.c (gtk_tree_store_drag_data_received): handle gtk-tree-model-drop-append like the ListStore, includes some tweaks to work right with trees
Diffstat (limited to 'gtk/gtktreestore.c')
-rw-r--r--gtk/gtktreestore.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/gtk/gtktreestore.c b/gtk/gtktreestore.c
index 17e2ea6445..e88b92ac59 100644
--- a/gtk/gtktreestore.c
+++ b/gtk/gtktreestore.c
@@ -1677,15 +1677,31 @@ gtk_tree_store_drag_data_received (GtkTreeDragDest *drag_dest,
prev))
{
GtkTreeIter tmp_iter = dest_iter;
- gtk_tree_store_insert_after (GTK_TREE_STORE (tree_model),
- &dest_iter,
- NULL,
- &tmp_iter);
+
+ if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_model), "gtk-tree-model-drop-append")))
+ {
+ GtkTreeIter parent;
+
+ if (gtk_tree_model_iter_parent (GTK_TREE_MODEL (tree_model), &parent, &tmp_iter))
+ gtk_tree_store_append (GTK_TREE_STORE (tree_model),
+ &dest_iter, &parent);
+ else
+ gtk_tree_store_append (GTK_TREE_STORE (tree_model),
+ &dest_iter, NULL);
+ }
+ else
+ gtk_tree_store_insert_after (GTK_TREE_STORE (tree_model),
+ &dest_iter,
+ NULL,
+ &tmp_iter);
retval = TRUE;
}
}
+ g_object_set_data (G_OBJECT (tree_model), "gtk-tree-model-drop-append",
+ NULL);
+
gtk_tree_path_free (prev);
/* If we succeeded in creating dest_iter, walk src_iter tree branch,