diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/foldersel.c | 2 | ||||
-rw-r--r-- | src/folderview.c | 17 | ||||
-rw-r--r-- | src/folderview.h | 3 |
3 files changed, 16 insertions, 6 deletions
diff --git a/src/foldersel.c b/src/foldersel.c index 6c7f3ecb..89f43cf1 100644 --- a/src/foldersel.c +++ b/src/foldersel.c @@ -542,7 +542,7 @@ static void foldersel_new_folder(GtkButton *button, gpointer data) gtk_tree_path_free(new_child_p); gtk_tree_path_free(selected_p); - folderview_append_item(folderview_get(), NULL, new_item); + folderview_append_item(folderview_get(), NULL, new_item, TRUE); folder_write_list(); } diff --git a/src/folderview.c b/src/folderview.c index 1dceefe0..f5488fc8 100644 --- a/src/folderview.c +++ b/src/folderview.c @@ -718,7 +718,7 @@ void folderview_update_opened_msg_num(FolderView *folderview) } gboolean folderview_append_item(FolderView *folderview, GtkTreeIter *iter, - FolderItem *item) + FolderItem *item, gboolean expand_parent) { FolderItem *parent_item; GtkTreeModel *model = GTK_TREE_MODEL(folderview->store); @@ -746,6 +746,15 @@ gboolean folderview_append_item(FolderView *folderview, GtkTreeIter *iter, folderview_update_row(folderview, &child); if (iter) *iter = child; + if (expand_parent && iter_p) { + GtkTreePath *path; + + path = gtk_tree_model_get_path(model, iter_p); + gtk_tree_view_expand_row + (GTK_TREE_VIEW(folderview->treeview), + path, FALSE); + gtk_tree_path_free(path); + } return TRUE; } @@ -1252,7 +1261,7 @@ static void folderview_insert_item_recursive(FolderView *folderview, g_return_if_fail(item != NULL); - valid = folderview_append_item(folderview, &iter, item); + valid = folderview_append_item(folderview, &iter, item, FALSE); g_return_if_fail(valid == TRUE); for (node = item->node->children; node != NULL; node = node->next) { @@ -1926,7 +1935,7 @@ static void folderview_new_folder_cb(FolderView *folderview, guint action, return; } - folderview_append_item(folderview, NULL, new_item); + folderview_append_item(folderview, NULL, new_item, TRUE); folder_write_list(); } @@ -2287,7 +2296,7 @@ static void folderview_new_news_group_cb(FolderView *folderview, guint action, newitem = folder_item_new(name, name); folder_item_append(rootitem, newitem); - folderview_append_item(folderview, NULL, newitem); + folderview_append_item(folderview, NULL, newitem, TRUE); } if (new_subscr) { diff --git a/src/folderview.h b/src/folderview.h index f921b489..352ea6c7 100644 --- a/src/folderview.h +++ b/src/folderview.h @@ -86,7 +86,8 @@ void folderview_update_opened_msg_num (FolderView *folderview); gboolean folderview_append_item (FolderView *folderview, GtkTreeIter *iter, - FolderItem *item); + FolderItem *item, + gboolean expand_parent); void folderview_check_new (Folder *folder); void folderview_check_new_all (void); |