diff options
author | Milan Crha <mcrha@redhat.com> | 2014-04-11 00:03:06 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2014-04-11 00:03:06 +0800 |
commit | 26ce0bb5161f6e3298c33cc1fb6e859674155863 (patch) | |
tree | f0366cd55c99fe0fb9160b397e30309428fe1bd3 /mail | |
parent | ee087892a25549b876df38a8610f4804ca5f7543 (diff) | |
download | gsoc2013-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.c | 6 |
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; |