* src/summaryview.c
As the list may change while the mark as read delay
runs, we can't rely on the 'row' pointer, which can
be invalid when the timeout is called. As the mark
as read is only done if the message is still selected,
use summaryview->selected instead. Thanks to Colin.
+2006-12-01 [wwp] 2.6.0cvs71
+
+ * src/summaryview.c
+ As the list may change while the mark as read delay
+ runs, we can't rely on the 'row' pointer, which can
+ be invalid when the timeout is called. As the mark
+ as read is only done if the message is still selected,
+ use summaryview->selected instead. Thanks to Colin.
+
2006-11-30 [paul] 2.6.0cvs70
* src/textview.c
( cvs diff -u -r 1.5.2.43 -r 1.5.2.44 src/gtk/gtkutils.c; cvs diff -u -r 1.5.2.6 -r 1.5.2.7 src/gtk/gtkvscrollbutton.c; ) > 2.6.0cvs68.patchset
( cvs diff -u -r 1.1.2.38 -r 1.1.2.39 src/wizard.c; ) > 2.6.0cvs69.patchset
( cvs diff -u -r 1.96.2.159 -r 1.96.2.160 src/textview.c; ) > 2.6.0cvs70.patchset
+( cvs diff -u -r 1.395.2.269 -r 1.395.2.270 src/summaryview.c; ) > 2.6.0cvs71.patchset
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=70
+EXTRA_VERSION=71
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
typedef struct {
MsgInfo *msginfo;
SummaryView *summaryview;
- GtkCTreeNode *row;
} MarkAsReadData;
static int msginfo_mark_as_read_timeout(void *data)
if (mdata->msginfo == summary_get_selected_msg(mdata->summaryview))
msginfo_mark_as_read(mdata->summaryview, mdata->msginfo,
- mdata->row);
+ mdata->summaryview->selected);
g_free(mdata);
MarkAsReadData *data = g_new0(MarkAsReadData, 1);
data->summaryview = summaryview;
data->msginfo = msginfo;
- data->row = row;
g_timeout_add(prefs_common.mark_as_read_delay * 1000,
msginfo_mark_as_read_timeout, data);
} else if (new_window || !prefs_common.mark_as_read_on_new_window) {