commit df576abca3a4864840b1f52da4031fd1cf24fe1b
parent 94ca01e75654f13202526c51d6a7785caaf2e9f8
Author: Paul <paul@claws-mail.org>
Date: Thu, 27 Feb 2025 10:18:16 +0000
fix bug where viewing msgs in the separate msg view are not marked as read when the msgview panel is hidden
Diffstat:
4 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/src/mainwindow.c b/src/mainwindow.c
@@ -4355,7 +4355,7 @@ static void cancel_cb(GtkAction *action, gpointer data)
static void open_msg_cb(GtkAction *action, gpointer data)
{
MainWindow *mainwin = (MainWindow *)data;
- summary_open_msg(mainwin->summaryview);
+ summary_open_msg(mainwin->summaryview, TRUE, FALSE);
}
static void view_source_cb(GtkAction *action, gpointer data)
diff --git a/src/messageview.c b/src/messageview.c
@@ -1,6 +1,6 @@
/*
* Claws Mail -- a GTK based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2024 the Claws Mail team and Hiroyuki Yamamoto
+ * Copyright (C) 1999-2025 the Claws Mail team and Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1444,6 +1444,8 @@ gint messageview_show(MessageView *messageview, MsgInfo *msginfo,
}
mimeview_show_message(messageview->mimeview, mimeinfo, file);
+ summary_open_msg(messageview->mainwin->summaryview, FALSE, TRUE);
+
#ifndef GENERIC_UMPC
messageview_set_position(messageview, 0);
#endif
diff --git a/src/summaryview.c b/src/summaryview.c
@@ -170,7 +170,8 @@ static void summary_display_msg (SummaryView *summaryview,
static void summary_display_msg_full (SummaryView *summaryview,
GtkCMCTreeNode *row,
gboolean new_window,
- gboolean all_headers);
+ gboolean all_headers,
+ gboolean from_sep_msgview);
static void summary_set_row_marks (SummaryView *summaryview,
GtkCMCTreeNode *row);
@@ -3589,7 +3590,7 @@ static inline void summary_set_header(SummaryView *summaryview, gchar *text[],
static void summary_display_msg(SummaryView *summaryview, GtkCMCTreeNode *row)
{
- summary_display_msg_full(summaryview, row, FALSE, FALSE);
+ summary_display_msg_full(summaryview, row, FALSE, FALSE, FALSE);
}
static gboolean defer_change(gpointer data);
@@ -3728,7 +3729,8 @@ static int msginfo_mark_as_read_timeout(void *data)
static void summary_display_msg_full(SummaryView *summaryview,
GtkCMCTreeNode *row,
- gboolean new_window, gboolean all_headers)
+ gboolean new_window, gboolean all_headers,
+ gboolean from_sep_msgview)
{
GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
MsgInfo *msginfo;
@@ -3807,6 +3809,9 @@ static void summary_display_msg_full(SummaryView *summaryview,
msginfo_mark_as_read_timeout, data);
} else if (new_window || !prefs_common.mark_as_read_on_new_window) {
msginfo_mark_as_read(summaryview, msginfo, row);
+ } else if (from_sep_msgview &&
+ prefs_common.mark_as_read_on_new_window) {
+ msginfo_mark_as_read(summaryview, msginfo, row);
}
}
@@ -3824,7 +3829,7 @@ void summary_display_msg_selected(SummaryView *summaryview,
if (summary_is_locked(summaryview)) return;
summaryview->displayed = NULL;
summary_display_msg_full(summaryview, summaryview->selected, FALSE,
- all_headers);
+ all_headers, FALSE);
}
void summary_redisplay_msg(SummaryView *summaryview)
@@ -3838,14 +3843,15 @@ void summary_redisplay_msg(SummaryView *summaryview)
}
}
-void summary_open_msg(SummaryView *summaryview)
+void summary_open_msg(SummaryView *summaryview, gboolean new_window,
+ gboolean from_sep_msgview)
{
if (!summaryview->selected) return;
/* CLAWS: if separate message view, don't open a new window
* but rather use the current separated message view */
summary_display_msg_full(summaryview, summaryview->selected,
- TRUE, FALSE);
+ new_window, FALSE, from_sep_msgview);
}
void summary_view_source(SummaryView * summaryview)
@@ -7182,7 +7188,7 @@ void summary_open_row(GtkSCTree *sctree, SummaryView *summaryview)
if (FOLDER_SHOWS_TO_HDR(summaryview->folder_item))
summary_reedit(summaryview);
else
- summary_open_msg(summaryview);
+ summary_open_msg(summaryview, TRUE, FALSE);
summaryview->display_msg = FALSE;
}
diff --git a/src/summaryview.h b/src/summaryview.h
@@ -1,6 +1,6 @@
/*
* Claws Mail -- a GTK based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2022 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2025 the Claws Mail team and Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -257,7 +257,9 @@ gboolean summary_pass_key_press_event (SummaryView *summaryview,
void summary_display_msg_selected (SummaryView *summaryview,
gboolean all_headers);
void summary_redisplay_msg (SummaryView *summaryview);
-void summary_open_msg (SummaryView *summaryview);
+void summary_open_msg (SummaryView *summaryview,
+ gboolean new_window,
+ gboolean from_sep_msgview);
void summary_open_row (GtkSCTree *sctree, SummaryView *summaryview);
void summary_view_source (SummaryView *summaryview);
void summary_reedit (SummaryView *summaryview);