talons

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

commit 5d2ffc64277bf095330a0c6459b0289b5aef5c2f
parent bc6d725103886268f168bbdb343dcdfae40470da
Author: Andrej Kacian <ticho@claws-mail.org>
Date:   Tue, 14 May 2019 23:20:08 +0200

Return summaryview cursor to selected mail when popup menu is done

Fixes bug #3838: Canceled right-click on message
list leaves UI in inconsistent state

Diffstat:
Msrc/summaryview.c | 15+++++++++++++++
1 file changed, 15 insertions(+), 0 deletions(-)

diff --git a/src/summaryview.c b/src/summaryview.c @@ -527,6 +527,19 @@ GtkWidget *summary_get_main_widget(SummaryView *summaryview) summary_update_msg, (gpointer) summaryview); \ } +static void popup_menu_selection_done(GtkMenuShell *shell, gpointer user_data) +{ + SummaryView *summaryview = (SummaryView *)user_data; + + cm_return_if_fail(summaryview != NULL); + + /* If a message is displayed, place cursor back on the message. */ + if (summaryview->displayed != NULL && + summaryview->displayed != summaryview->selected) { + gtk_sctree_select(GTK_SCTREE(summaryview->ctree), summaryview->displayed); + } +} + SummaryView *summary_create(MainWindow *mainwin) { SummaryView *summaryview; @@ -2758,6 +2771,8 @@ static void summary_status_show(SummaryView *summaryview) n_new, n_unread, n_total, to_human_readable((goffset)n_size)); + g_signal_connect(G_OBJECT(summaryview->popupmenu), "selection-done", + G_CALLBACK(popup_menu_selection_done), summaryview); gtk_label_set_text(GTK_LABEL(summaryview->statlabel_msgs), str); g_free(str);