aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2014-04-11 00:03:06 +0800
committerMilan Crha <mcrha@redhat.com>2014-04-11 00:03:06 +0800
commit26ce0bb5161f6e3298c33cc1fb6e859674155863 (patch)
treef0366cd55c99fe0fb9160b397e30309428fe1bd3 /mail
parentee087892a25549b876df38a8610f4804ca5f7543 (diff)
downloadgsoc2013-evolution-26ce0bb5161f6e3298c33cc1fb6e859674155863.tar
gsoc2013-evolution-26ce0bb5161f6e3298c33cc1fb6e859674155863.tar.gz
gsoc2013-evolution-26ce0bb5161f6e3298c33cc1fb6e859674155863.tar.bz2
gsoc2013-evolution-26ce0bb5161f6e3298c33cc1fb6e859674155863.tar.lz
gsoc2013-evolution-26ce0bb5161f6e3298c33cc1fb6e859674155863.tar.xz
gsoc2013-evolution-26ce0bb5161f6e3298c33cc1fb6e859674155863.tar.zst
gsoc2013-evolution-26ce0bb5161f6e3298c33cc1fb6e859674155863.zip
Reset MessageList::seen_id in mail_reader_message_seen_cb()
Otherwise invalid source ID is used in the call of g_source_remove() when is tried to remove "pending" auto-mark-as-seen timeout callback. It can show a runtime warning on a console too.
Diffstat (limited to 'mail')
-rw-r--r--mail/e-mail-reader.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
index a35da4d3b4..3cc8814a6d 100644
--- a/mail/e-mail-reader.c
+++ b/mail/e-mail-reader.c
@@ -2594,6 +2594,12 @@ mail_reader_message_seen_cb (gpointer user_data)
parts = e_mail_display_get_part_list (display);
message_list = e_mail_reader_get_message_list (reader);
+ g_return_val_if_fail (IS_MESSAGE_LIST (message_list), FALSE);
+
+ /* zero the timeout id now, if it was not rescheduled */
+ if (g_source_get_id (g_main_current_source ()) == MESSAGE_LIST (message_list)->seen_id)
+ MESSAGE_LIST (message_list)->seen_id = 0;
+
if (e_tree_is_dragging (E_TREE (message_list)))
return FALSE;