summaryview->folder_item = NULL;
}
+ if (summaryview->mark_as_read_timeout_tag != 0) {
+ g_source_remove(summaryview->mark_as_read_timeout_tag);
+ summaryview->mark_as_read_timeout_tag = 0;
+ }
+
summaryview->display_msg = FALSE;
summaryview->selected = NULL;
if (!summaryview->folder_item)
return;
if (node) {
+ if (summaryview->mark_as_read_timeout_tag != 0) {
+ g_source_remove(summaryview->mark_as_read_timeout_tag);
+ summaryview->mark_as_read_timeout_tag = 0;
+ }
gtkut_ctree_expand_parent_all(ctree, node);
if (do_refresh) {
summary_lock(summaryview);
mdata->summaryview->selected);
procmsg_msginfo_free(mdata->msginfo);
+ mdata->summaryview->mark_as_read_timeout_tag = 0;
+
g_free(mdata);
- return FALSE;
+ return FALSE;
}
static void summary_display_msg_full(SummaryView *summaryview,
MarkAsReadData *data = g_new0(MarkAsReadData, 1);
data->summaryview = summaryview;
data->msginfo = procmsg_msginfo_new_ref(msginfo);
+ if (summaryview->mark_as_read_timeout_tag != 0)
+ g_source_remove(summaryview->mark_as_read_timeout_tag);
+
#if GLIB_CHECK_VERSION(2,14,0)
- g_timeout_add_seconds(prefs_common.mark_as_read_delay,
- msginfo_mark_as_read_timeout, data);
+ summaryview->mark_as_read_timeout_tag =
+ g_timeout_add_seconds(prefs_common.mark_as_read_delay,
+ msginfo_mark_as_read_timeout, data);
#else
- g_timeout_add(prefs_common.mark_as_read_delay * 1000,
- msginfo_mark_as_read_timeout, data);
+ summaryview->mark_as_read_timeout_tag =
+ g_timeout_add(prefs_common.mark_as_read_delay * 1000,
+ msginfo_mark_as_read_timeout, data);
#endif
} else if (new_window || !prefs_common.mark_as_read_on_new_window) {
msginfo_mark_as_read(summaryview, msginfo, row);