aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-composer-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/em-composer-utils.c')
-rw-r--r--mail/em-composer-utils.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index 205a894d37..065cd325df 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -46,6 +46,7 @@
#include "composer/e-msg-composer.h"
#include "composer/e-composer-autosave.h"
#include "em-format-html.h"
+#include "em-format-html-print.h"
#include "em-format-quote.h"
#include "em-event.h"
@@ -642,6 +643,20 @@ em_utils_composer_save_draft_cb (EMsgComposer *composer)
camel_object_unref (msg);
}
+static void
+em_utils_composer_print_cb (EMsgComposer *composer,
+ GtkPrintOperationAction action)
+{
+ CamelMimeMessage *message;
+ EMFormatHTMLPrint *efhp;
+
+ message = e_msg_composer_get_message_print (composer, 1);
+
+ efhp = em_format_html_print_new (NULL, action);
+ em_format_html_print_raw_message (efhp, message);
+ g_object_unref (efhp);
+}
+
/* Composing messages... */
static EMsgComposer *
@@ -2542,6 +2557,10 @@ em_configure_new_composer (EMsgComposer *composer)
composer, "save-draft",
G_CALLBACK (em_utils_composer_save_draft_cb), NULL);
+ g_signal_connect (
+ composer, "print",
+ G_CALLBACK (em_utils_composer_print_cb), NULL);
+
/* Supply the composer with a folder tree model. */
table = e_msg_composer_get_header_table (composer);
model = e_mail_shell_module_get_folder_tree_model (mail_shell_module);