aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules/mail/e-mail-shell-view-private.c19
-rw-r--r--plugins/mailing-list-actions/mailing-list-actions.c3
2 files changed, 21 insertions, 1 deletions
diff --git a/modules/mail/e-mail-shell-view-private.c b/modules/mail/e-mail-shell-view-private.c
index a4e74c32ad..6a15f4ed07 100644
--- a/modules/mail/e-mail-shell-view-private.c
+++ b/modules/mail/e-mail-shell-view-private.c
@@ -387,6 +387,20 @@ mail_shell_view_reader_changed_cb (EMailShellView *mail_shell_view,
}
static void
+mail_shell_view_reader_update_actions_cb (EMailReader *reader,
+ guint32 state,
+ EMailShellView *mail_shell_view)
+{
+ EMailShellContent *mail_shell_content;
+
+ g_return_if_fail (mail_shell_view != NULL);
+ g_return_if_fail (mail_shell_view->priv != NULL);
+
+ mail_shell_content = mail_shell_view->priv->mail_shell_content;
+ e_mail_reader_update_actions (E_MAIL_READER (mail_shell_content), state);
+}
+
+static void
mail_shell_view_prepare_for_quit_done_cb (CamelFolder *folder,
gpointer user_data)
{
@@ -608,6 +622,11 @@ e_mail_shell_view_private_constructed (EMailShellView *mail_shell_view)
mail_shell_view, G_CONNECT_SWAPPED);
g_signal_connect_object (
+ e_mail_shell_content_get_mail_view (mail_shell_content), "update-actions",
+ G_CALLBACK (mail_shell_view_reader_update_actions_cb),
+ mail_shell_view, 0);
+
+ g_signal_connect_object (
reader, "folder-loaded",
G_CALLBACK (e_mail_view_update_view_instance),
mail_view, G_CONNECT_SWAPPED);
diff --git a/plugins/mailing-list-actions/mailing-list-actions.c b/plugins/mailing-list-actions/mailing-list-actions.c
index fd3ae6c0fa..8090c21063 100644
--- a/plugins/mailing-list-actions/mailing-list-actions.c
+++ b/plugins/mailing-list-actions/mailing-list-actions.c
@@ -348,7 +348,8 @@ update_actions_cb (EMailReader *reader,
{
gboolean sensitive;
- sensitive = (state & E_MAIL_READER_SELECTION_IS_MAILING_LIST);
+ sensitive = (state & E_MAIL_READER_SELECTION_IS_MAILING_LIST) != 0
+ && (state & E_MAIL_READER_SELECTION_SINGLE) != 0;
gtk_action_group_set_sensitive (action_group, sensitive);
}