--- a/src/gtkblist.c Thu Jan 13 14:37:15 2005 -0500
+++ b/src/gtkblist.c Thu Jan 13 14:47:10 2005 -0500
@@ -3532,9 +3532,10 @@
* valgrind found several reasons why it's good. If this causes problems
* comment it out again. Stu */
/* Of course it still causes problems - this breaks dragging buddies into
- * contacts, the dragged buddy mysteriously 'disappears'. Stu.
+ * contacts, the dragged buddy mysteriously 'disappears'. Stu. */ + /* I think it's fixed now. Stu. */ - node->ui_data = NULL; */
static gboolean do_selection_changed(GaimBlistNode *new_selection)
@@ -3574,7 +3575,7 @@
struct _gaim_gtk_blist_node *gtknode = node->ui_data;
if(node->parent && !get_iter_from_node(node->parent, &parent_iter))
@@ -3589,7 +3590,17 @@
*iter = sort_method_none(node, list, parent_iter, curptr);
- gtk_tree_row_reference_free(gtknode->row);
+ gtk_tree_row_reference_free(gtknode->row); + gaim_gtk_blist_new_node(node); + gtknode = (struct _gaim_gtk_blist_node *)node->ui_data; + /* If the node is a contact, and gtknode was NULL, it's because it was dragged. + * It *must* have been expanded in order for it to be dragged. */ + if(GAIM_BLIST_NODE_IS_CONTACT(node)) + gtknode->contact_expanded = TRUE; newpath = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel),
@@ -3738,7 +3749,6 @@
/* First things first, update the group */
gaim_gtk_blist_update_group(list, node->parent);
- gtknode = (struct _gaim_gtk_blist_node *)node->ui_data;
contact = (GaimContact*)node;
buddy = gaim_contact_get_priority_buddy(contact);
@@ -3751,6 +3761,8 @@
if(!insert_node(list, node, &iter))
+ gtknode = (struct _gaim_gtk_blist_node *)node->ui_data; if(gtknode->contact_expanded) {