aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-browser.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/e-mail-browser.c')
-rw-r--r--mail/e-mail-browser.c37
1 files changed, 22 insertions, 15 deletions
diff --git a/mail/e-mail-browser.c b/mail/e-mail-browser.c
index 8c5e4bb1fd..2df99d618e 100644
--- a/mail/e-mail-browser.c
+++ b/mail/e-mail-browser.c
@@ -262,8 +262,6 @@ mail_browser_message_selected_cb (EMailBrowser *browser,
CamelMessageInfo *info;
CamelFolder *folder;
EMailReader *reader;
- EMailDisplay *display;
- const gchar *title;
guint32 state;
reader = E_MAIL_READER (browser);
@@ -273,24 +271,30 @@ mail_browser_message_selected_cb (EMailBrowser *browser,
if (uid == NULL)
return;
- folder = e_mail_reader_get_folder (reader);
- display = e_mail_reader_get_mail_display (reader);
+ folder = e_mail_reader_ref_folder (reader);
info = camel_folder_get_message_info (folder, uid);
- if (info == NULL)
- return;
+ if (info != NULL) {
+ EMailDisplay *display;
+ const gchar *title;
+
+ display = e_mail_reader_get_mail_display (reader);
- title = camel_message_info_subject (info);
- if (title == NULL || *title == '\0')
- title = _("(No Subject)");
+ title = camel_message_info_subject (info);
+ if (title == NULL || *title == '\0')
+ title = _("(No Subject)");
- gtk_window_set_title (GTK_WINDOW (browser), title);
- gtk_widget_grab_focus (GTK_WIDGET (display));
+ gtk_window_set_title (GTK_WINDOW (browser), title);
+ gtk_widget_grab_focus (GTK_WIDGET (display));
- camel_message_info_set_flags (
- info, CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN);
- camel_folder_free_message_info (folder, info);
+ camel_message_info_set_flags (
+ info, CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN);
+
+ camel_folder_free_message_info (folder, info);
+ }
+
+ g_clear_object (&folder);
}
static gboolean
@@ -851,7 +855,8 @@ mail_browser_set_message (EMailReader *reader,
return;
}
- folder = e_mail_reader_get_folder (reader);
+ folder = e_mail_reader_ref_folder (reader);
+
info = camel_folder_get_message_info (folder, uid);
if (info != NULL) {
@@ -860,6 +865,8 @@ mail_browser_set_message (EMailReader *reader,
camel_message_info_subject (info));
camel_folder_free_message_info (folder, info);
}
+
+ g_clear_object (&folder);
}
static void