From a283b31b327a080e740931b4dad41aae8877b663 Mon Sep 17 00:00:00 2001 From: hiro Date: Thu, 26 Jul 2012 06:21:19 +0000 Subject: enable quick launch from the attach tool menu. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@3139 ee746299-78ed-0310-b773-934348b2243d --- src/messageview.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/messageview.c b/src/messageview.c index 530b8d92..e59046e2 100644 --- a/src/messageview.c +++ b/src/messageview.c @@ -93,6 +93,8 @@ static gint messageview_menu_tool_btn_pressed (GtkWidget *widget, GdkEventButton *event, MessageView *messageview); +static void messageview_open_file_cb (GtkWidget *widget, + MessageView *messageview); static void messageview_save_all_cb (GtkWidget *widget, MessageView *messageview); static gboolean key_pressed (GtkWidget *widget, @@ -696,8 +698,11 @@ static void messageview_set_tool_menu(MessageView *messageview, name = "mimetmp"; menuitem = gtk_menu_item_new_with_label(name); gtk_widget_show(menuitem); - gtk_widget_set_sensitive(menuitem, FALSE); gtk_menu_shell_insert(GTK_MENU_SHELL(messageview->tool_menu), menuitem, pos++); + g_object_set_data(G_OBJECT(menuitem), "tool-menu-mimeinfo", partinfo); + g_signal_connect(G_OBJECT(menuitem), "activate", + G_CALLBACK(messageview_open_file_cb), + messageview); } } @@ -767,6 +772,7 @@ static void messageview_set_encoding_menu(MessageView *messageview) void messageview_clear(MessageView *messageview) { + messageview_set_tool_menu(messageview, NULL); procmsg_msginfo_free(messageview->msginfo); messageview->msginfo = NULL; messageview_change_view_type(messageview, MVIEW_TEXT); @@ -978,6 +984,15 @@ static gint messageview_menu_tool_btn_pressed(GtkWidget *widget, return TRUE; } +static void messageview_open_file_cb(GtkWidget *widget, MessageView *messageview) +{ + MimeInfo *partinfo; + + partinfo = g_object_get_data(G_OBJECT(widget), "tool-menu-mimeinfo"); + if (partinfo) + mimeview_launch_part(messageview->mimeview, partinfo); +} + static void messageview_save_all_cb(GtkWidget *widget, MessageView *messageview) { mimeview_save_all(messageview->mimeview); -- cgit v1.2.3