diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/folderview.c | 20 | ||||
-rw-r--r-- | src/folderview.h | 2 | ||||
-rw-r--r-- | src/summaryview.c | 4 |
3 files changed, 23 insertions, 3 deletions
diff --git a/src/folderview.c b/src/folderview.c index 2f6ffc2f..ad01fede 100644 --- a/src/folderview.c +++ b/src/folderview.c @@ -674,6 +674,26 @@ FolderItem *folderview_get_selected_item(FolderView *folderview) return item; } +void folderview_set_opened_item(FolderView *folderview, FolderItem *item) +{ + GtkTreeModel *model = GTK_TREE_MODEL(folderview->store); + GtkTreeIter iter; + GtkTreePath *path; + + gtk_tree_row_reference_free(folderview->opened); + folderview->opened = NULL; + + if (!item) + return; + + if (gtkut_tree_model_find_by_column_data + (model, &iter, NULL, COL_FOLDER_ITEM, item)) { + path = gtk_tree_model_get_path(model, &iter); + folderview->opened = gtk_tree_row_reference_new(model, path); + gtk_tree_path_free(path); + } +} + void folderview_update_opened_msg_num(FolderView *folderview) { GtkTreePath *path; diff --git a/src/folderview.h b/src/folderview.h index 4205d120..91532198 100644 --- a/src/folderview.h +++ b/src/folderview.h @@ -79,6 +79,8 @@ void folderview_select_next_unread (FolderView *folderview); FolderItem *folderview_get_selected_item(FolderView *folderview); +void folderview_set_opened_item (FolderView *folderview, + FolderItem *item); void folderview_update_opened_msg_num (FolderView *folderview); gboolean folderview_append_item (FolderView *folderview, diff --git a/src/summaryview.c b/src/summaryview.c index aa3c28d8..dd848f9d 100644 --- a/src/summaryview.c +++ b/src/summaryview.c @@ -592,9 +592,7 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item, } else summary_write_cache(summaryview); - gtk_tree_row_reference_free(summaryview->folderview->opened); - summaryview->folderview->opened = - gtk_tree_row_reference_copy(summaryview->folderview->selected); + folderview_set_opened_item(summaryview->folderview, item); summary_clear_list(summaryview); summary_set_column_titles(summaryview); |