aboutsummaryrefslogtreecommitdiff
path: root/src/summaryview.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-05-20 08:08:40 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-05-20 08:08:40 +0000
commit712d73a94ee8c8fd79141c1019d082a056a6bb29 (patch)
tree3d91a411904cc112d62c319e884cd8e9e70f3838 /src/summaryview.c
parent68828e3070d088dc7cf30cfa9ffc8b3ffb5f7bfd (diff)
fixed the selection state of summary on refresh.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@274 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/summaryview.c')
-rw-r--r--src/summaryview.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/summaryview.c b/src/summaryview.c
index 58493898..91fc8e32 100644
--- a/src/summaryview.c
+++ b/src/summaryview.c
@@ -537,6 +537,7 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item,
gboolean update_cache)
{
GtkTreeView *treeview = GTK_TREE_VIEW(summaryview->treeview);
+ GtkTreeModel *model = GTK_TREE_MODEL(summaryview->store);
GtkTreeIter iter;
GSList *mlist = NULL;
gchar *buf;
@@ -647,11 +648,19 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item,
if (is_refresh) {
if (summary_find_msg_by_msgnum(summaryview, displayed_msgnum,
- &iter))
- summary_select_row(summaryview, &iter, FALSE, TRUE);
- else
+ &iter)) {
+ GtkTreePath *path;
+
+ path = gtk_tree_model_get_path(model, &iter);
+ gtk_tree_row_reference_free(summaryview->displayed);
+ summaryview->displayed =
+ gtk_tree_row_reference_new(model, path);
+ gtk_tree_path_free(path);
+ } else
messageview_clear(summaryview->messageview);
+ summary_select_by_msgnum(summaryview, selected_msgnum);
+
if (!summaryview->selected) {
/* no selected message - select first unread
message, but do not display it */