From f18a6f79d75bb5d16a9cbd825deb49b45c79ee32 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Fri, 8 Mar 2002 19:40:15 +0000 Subject: [PATCH] handle gtk-tree-model-drop-append like the ListStore, includes some tweaks Fri Mar 8 20:41:51 2002 Kristian Rietveld * 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 --- ChangeLog | 6 ++++++ ChangeLog.pre-2-0 | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-2 | 6 ++++++ ChangeLog.pre-2-4 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtktreestore.c | 24 ++++++++++++++++++++---- 8 files changed, 62 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index f1c8ee13c6..9f588215fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Fri Mar 8 20:41:51 2002 Kristian Rietveld + + * 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 + Fri Mar 8 14:22:43 2002 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_init): Some packing diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index f1c8ee13c6..9f588215fc 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,9 @@ +Fri Mar 8 20:41:51 2002 Kristian Rietveld + + * 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 + Fri Mar 8 14:22:43 2002 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_init): Some packing diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index f1c8ee13c6..9f588215fc 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Fri Mar 8 20:41:51 2002 Kristian Rietveld + + * 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 + Fri Mar 8 14:22:43 2002 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_init): Some packing diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index f1c8ee13c6..9f588215fc 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +Fri Mar 8 20:41:51 2002 Kristian Rietveld + + * 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 + Fri Mar 8 14:22:43 2002 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_init): Some packing diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index f1c8ee13c6..9f588215fc 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Fri Mar 8 20:41:51 2002 Kristian Rietveld + + * 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 + Fri Mar 8 14:22:43 2002 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_init): Some packing diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index f1c8ee13c6..9f588215fc 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Fri Mar 8 20:41:51 2002 Kristian Rietveld + + * 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 + Fri Mar 8 14:22:43 2002 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_init): Some packing diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index f1c8ee13c6..9f588215fc 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Fri Mar 8 20:41:51 2002 Kristian Rietveld + + * 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 + Fri Mar 8 14:22:43 2002 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_init): Some packing 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,