Further improve API isolation of folderview.
[claws.git] / src / plugins / rssyl / rssyl_cb_menu.c
index 7a1e8fbca65de74745afc5aaf30e6a7dde31ad69..826e1716c105a933d3cc64c05e3ba04e8e4e782b 100644 (file)
@@ -135,8 +135,7 @@ void rssyl_remove_folder_cb(GtkAction *action,
                             gpointer data)
 {
        FolderView *folderview = (FolderView*)data;
-       GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
-       FolderItem *item;
+       FolderItem *item, *opened;
        gchar *message, *name;
        AlertValue avalue;
        gchar *old_id;
@@ -145,6 +144,7 @@ void rssyl_remove_folder_cb(GtkAction *action,
        g_return_if_fail(item != NULL);
        g_return_if_fail(item->path != NULL);
        g_return_if_fail(item->folder != NULL);
+       opened = folderview_get_opened_item(folderview);
 
        name = trim_string(item->name, 32);
        AUTORELEASE_STR(name, {g_free(name); return;});
@@ -160,12 +160,10 @@ void rssyl_remove_folder_cb(GtkAction *action,
 
        old_id = folder_item_get_identifier(item);
 
-       if (folderview->opened == folderview->selected ||
-           gtk_cmctree_is_ancestor(ctree,
-                                 folderview->selected,
-                                 folderview->opened)) {
+       if (item == opened ||
+                       folder_is_child_of(item, opened)) {
                summary_clear_all(folderview->summaryview);
-               folderview->opened = NULL;
+               folderview_close_opened(folderview, TRUE);
        }
 
        if (item->folder->klass->remove_folder(item->folder, item) < 0) {