talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

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:
Msrc/mainwindow.c | 2+-
Msrc/messageview.c | 4+++-
Msrc/summaryview.c | 20+++++++++++++-------
Msrc/summaryview.h | 6++++--
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);