aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-05-31 06:36:11 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-05-31 06:36:11 +0000
commit2737d9e365fc0ad5d6314da0b27ab594ebdaad7e (patch)
tree214d1d75a0c24c7e9f7b88a935b7eb157a6d9cfb /src
parentf77f90cbab5a6a6123c878179419c2c512ea957d (diff)
fixed a bug that caused crash if FolderView::selected is NULL.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@301 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src')
-rw-r--r--src/folderview.c20
-rw-r--r--src/folderview.h2
-rw-r--r--src/summaryview.c4
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);