[anjal] BUGFIX: GNOME Bugzilla #589985 - Show composer when emails are clicked
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjal] BUGFIX: GNOME Bugzilla #589985 - Show composer when emails are clicked
- Date: Tue, 28 Jul 2009 15:59:01 +0000 (UTC)
commit 75f612dfe5ad49effc8f1dc827d807eb074d7540
Author: Srinivasa Ragavan <sragavan novell com>
Date: Tue Jul 28 21:27:22 2009 +0530
BUGFIX: GNOME Bugzilla #589985 - Show composer when emails are clicked
on the body.
src/mail-message-view.c | 17 +++++++++++++++--
src/mail-shell.c | 10 ++++++++++
src/mail-shell.h | 1 +
3 files changed, 26 insertions(+), 2 deletions(-)
---
diff --git a/src/mail-message-view.c b/src/mail-message-view.c
index 7a1484b..371f648 100644
--- a/src/mail-message-view.c
+++ b/src/mail-message-view.c
@@ -514,7 +514,7 @@ construct_reply_composer (MailMessageView *mmv, int mode)
e_composer_header_table_set_header_visible (table, E_COMPOSER_HEADER_SUBJECT, FALSE);
gtk_container_add ((GtkContainer *)mmv->frame, box);
tmp = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
- gtk_alignment_set_padding (tmp, 0, 0, 0, 20);
+ gtk_alignment_set_padding ((GtkAlignment *)tmp, 0, 0, 0, 20);
gtk_widget_show (tmp);
gtk_box_pack_start ((GtkBox *)mmv->cbox, tmp, FALSE, FALSE, 18);
gtk_box_pack_start ((GtkBox *)mmv->cbox, mmv->frame, TRUE, TRUE, 6);
@@ -911,6 +911,18 @@ mmv_sh_color_expose (GtkWidget *w, GdkEventExpose *event, MailMessageView *mmv)
#if HAVE_WEBKIT
+
+gint
+mmv_nav (gpointer a, gpointer b, gpointer c, gpointer d)
+{
+ const char *uri = webkit_network_request_get_uri(c);
+
+ if (strncmp(uri, "mailto:", 7) == 0)
+ mail_shell_create_composer_mailto (uri);
+
+ return WEBKIT_NAVIGATION_RESPONSE_IGNORE;
+}
+
GtkWidget *
mmv_create_webview (MailMessageView *mmv, GtkWidget *box)
{
@@ -924,7 +936,8 @@ mmv_create_webview (MailMessageView *mmv, GtkWidget *box)
g_signal_connect (web, "load-started", G_CALLBACK(mmv_finished_webkit), mmv);
g_signal_connect (web, "load-finished", G_CALLBACK(mmv_finished_loading_webkit), mmv);
g_signal_connect (web, "button-press-event", G_CALLBACK (mmv_button_press), mmv);
-
+ g_signal_connect (web, "navigation-requested", G_CALLBACK (mmv_nav), mmv);
+
gtk_box_pack_start ((GtkBox *)box, scroll, FALSE, FALSE, 0);
webkit_web_view_set_editable (web, FALSE);
gtk_widget_show ((GtkWidget *)web);
diff --git a/src/mail-shell.c b/src/mail-shell.c
index d3b5f7b..a93eae9 100644
--- a/src/mail-shell.c
+++ b/src/mail-shell.c
@@ -233,6 +233,16 @@ mail_shell_create_composer (void)
return mail_view_add_page ((MailView *)view, MAIL_VIEW_COMPOSER, NULL);
}
+MailViewChild *
+mail_shell_create_composer_mailto (const char *uri)
+{
+ MailComponent *mc = mail_component_peek ();
+ MailView *view = (MailView *)mc->mail_view;
+ GtkWidget *composer = (GtkWidget *) em_utils_compose_new_message_with_mailto (uri, NULL);
+ gtk_widget_show (view->folder_tree);
+
+ return mail_view_add_page (view, MAIL_VIEW_COMPOSER, (gpointer)composer);
+}
static void
ms_check_mail (GtkButton *button, gpointer data)
{
diff --git a/src/mail-shell.h b/src/mail-shell.h
index d7bd68a..da2c4cd 100644
--- a/src/mail-shell.h
+++ b/src/mail-shell.h
@@ -55,6 +55,7 @@ MailShell * mail_shell_new (void);
MailViewChild *mail_shell_create_composer (void);
void mail_shell_set_cmdline_args (MailShell *shell, char **args);
void mail_shell_handle_cmdline (MailShell *shell);
+MailViewChild * mail_shell_create_composer_mailto (const char *uri);
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]