diff options
author | Kristian Rietveld <kris@gtk.org> | 2002-03-08 19:40:15 +0000 |
---|---|---|
committer | Kristian Rietveld <kristian@src.gnome.org> | 2002-03-08 19:40:15 +0000 |
commit | f18a6f79d75bb5d16a9cbd825deb49b45c79ee32 (patch) | |
tree | 86bf4ef77bfabfec23bcb2cdf7b1591559d30d75 /gtk/gtktreestore.c | |
parent | 9c6d85da2bd26dcaec9101a1fab61ff4563d28f5 (diff) | |
download | gtk+-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.c | 24 |
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, |