enable IMAP folder dnd
authorColin Leroy <colin@colino.net>
Wed, 27 Nov 2002 13:21:07 +0000 (13:21 +0000)
committerColin Leroy <colin@colino.net>
Wed, 27 Nov 2002 13:21:07 +0000 (13:21 +0000)
ChangeLog.claws
configure.in
src/folder.c
src/folderview.c

index a42e3025988e6bbd319b232e435c3f4436698d9f..a44f5cbb32d16d0a2091d5d7de62493351903561 100644 (file)
@@ -1,3 +1,12 @@
+2002-11-27 [colin]     0.8.6claws20
+
+       * src/folder.c
+               recursive move now deletes src each subfolder after 
+               having moved it
+       * src/folderview.c
+               Use identifier instead of path during dnd (enables
+               IMAP folder dnd)
+
 2002-11-27 [paul]      0.8.6claws19
 
        * src/main.c
index 3ab8cb662bb19469ebce2c04f84343e8805ba2dc..2929e2af3a542cd5379da2e46d6a5484e2f31be6 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=8
 MICRO_VERSION=6
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws19
+EXTRA_VERSION=claws20
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index 58aaeb2186cabda9c51c02d1ae9ed96699f94b15..49370dd62710d9cd232b35ae49b68717dbc448d4 100644 (file)
@@ -1565,11 +1565,13 @@ FolderItem *folder_item_move_recursive (FolderItem *src, FolderItem *dest)
        while (srcnode != NULL) {
                if (srcnode && srcnode->data) {
                        next_item = (FolderItem*) srcnode->data;
+                       srcnode = srcnode->next;
                        if (folder_item_move_recursive(next_item, new_item) == NULL)
                                return NULL;
                }
-               srcnode = srcnode->next;
        }
+       src->folder->remove_folder(src->folder, src);
+
        return new_item;
 }
 
@@ -1617,7 +1619,6 @@ gint folder_item_move_to(FolderItem *src, FolderItem *dest, FolderItem **new_ite
        }
        
        /* update rules */
-       src->folder->remove_folder(src->folder, src);
        src_node = g_node_find(src->folder->node, G_PRE_ORDER, G_TRAVERSE_ALL, src);
        if (src_node) 
                g_node_destroy(src_node);
index f4183c354d5739a2c75d096e0cce5b2a7c469e42..ede1f1a3eb6ecee4dd916935263b1c40f497525e 100644 (file)
@@ -2669,7 +2669,7 @@ static void folderview_drag_received_cb(GtkWidget        *widget,
                }
                node = gtk_ctree_node_nth(GTK_CTREE(widget), row);
                item = gtk_ctree_node_get_row_data(GTK_CTREE(widget), node);
-               src_item = folder_find_item_from_path(source);
+               src_item = folder_find_item_from_identifier(source);
 
                if (!item || !src_item || src_item->stype != F_NORMAL) {
                        gtk_drag_finish(drag_context, FALSE, FALSE, time);                      
@@ -2843,7 +2843,7 @@ static void folderview_drag_data_get(GtkWidget        *widget,
                        (GTK_CTREE(folderview->ctree), 
                         GTK_CTREE_NODE(cur->data));
                if (item) {
-                       source = g_strdup_printf ("FROM_OTHER_FOLDER%s", item->path);
+                       source = g_strdup_printf ("FROM_OTHER_FOLDER%s", folder_item_get_identifier(item));
                        gtk_selection_data_set(selection_data,
                                               selection_data->target, 8,
                                               source, strlen(source));