[balsa] Combine link-clicked handling for text/plain and text/html parts
- From: Peter Bloomfield <PeterB src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [balsa] Combine link-clicked handling for text/plain and text/html parts
- Date: Sat, 9 Jan 2010 14:50:11 +0000 (UTC)
commit 6f054cfc30eb781f903872245c2980e5e08a1830
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Sat Jan 9 09:50:03 2010 -0500
Combine link-clicked handling for text/plain and text/html parts
ChangeLog | 6 ++++++
src/balsa-mime-widget-text.c | 42 ++++++++++++++----------------------------
2 files changed, 20 insertions(+), 28 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 9497925..07c1794 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-09 Peter Bloomfield
+
+ * src/balsa-mime-widget-text.c (url_open_cb), (check_call_url),
+ (handle_url), (bm_widget_new_html): combine link-clicked
+ handling for text/plain and text/html parts.
+
2010-01-08 Pawel Salek
* libbalsa/imap/imap_compress.c: improve error handling.
diff --git a/src/balsa-mime-widget-text.c b/src/balsa-mime-widget-text.c
index b5aacfa..9ea642c 100644
--- a/src/balsa-mime-widget-text.c
+++ b/src/balsa-mime-widget-text.c
@@ -107,7 +107,7 @@ static void url_found_cb(GtkTextBuffer * buffer, GtkTextIter * iter,
const gchar * buf, guint len, gpointer data);
static gboolean check_call_url(GtkWidget * widget, GdkEventButton * event, GList * url_list);
static message_url_t * find_url(GtkWidget * widget, gint x, gint y, GList * url_list);
-static void handle_url(const message_url_t* url);
+static void handle_url(const gchar* url);
static void free_url_list(GList * url_list);
static void bm_widget_on_url(const gchar *url);
static void phrase_highlight(GtkTextBuffer * buffer, const gchar * id,
@@ -630,7 +630,7 @@ url_copy_cb(GtkWidget * menu_item, message_url_t * uri)
static void
url_open_cb(GtkWidget * menu_item, message_url_t * uri)
{
- handle_url(uri);
+ handle_url(uri->url);
}
static void
@@ -885,7 +885,7 @@ check_call_url(GtkWidget * widget, GdkEventButton * event,
&& (event->state & STORED_MASK_BITS) == stored_mask) {
url = find_url(widget, x, y, url_list);
if (url)
- handle_url(url);
+ handle_url(url->url);
}
return FALSE;
}
@@ -933,30 +933,29 @@ statusbar_pop(gpointer data)
#define SCHEDULE_BAR_REFRESH() g_timeout_add(5000, statusbar_pop, NULL);
static void
-handle_url(const message_url_t* url)
+handle_url(const gchar * url)
{
- if (!g_ascii_strncasecmp(url->url, "mailto:", 7)) {
+ if (!g_ascii_strncasecmp(url, "mailto:", 7)) {
BalsaSendmsg *snd = sendmsg_window_compose();
- sendmsg_window_process_url(url->url + 7,
- sendmsg_window_set_field, snd);
+ sendmsg_window_process_url(url + 7, sendmsg_window_set_field, snd);
} else {
GtkStatusbar *statusbar;
guint context_id;
-
- gchar *notice = g_strdup_printf(_("Calling URL %s..."),
- url->url);
+ gchar *notice = g_strdup_printf(_("Calling URL %s..."), url);
GError *err = NULL;
statusbar = GTK_STATUSBAR(balsa_app.main_window->statusbar);
- context_id = gtk_statusbar_get_context_id(statusbar, "BalsaMimeWidget message");
+ context_id =
+ gtk_statusbar_get_context_id(statusbar,
+ "BalsaMimeWidget message");
gtk_statusbar_push(statusbar, context_id, notice);
SCHEDULE_BAR_REFRESH();
g_free(notice);
- gtk_show_uri(NULL, url->url, gtk_get_current_event_time(), &err);
+ gtk_show_uri(NULL, url, gtk_get_current_event_time(), &err);
if (err) {
balsa_information(LIBBALSA_INFORMATION_WARNING,
- _("Error showing %s: %s\n"), url->url,
- err->message);
+ _("Error showing %s: %s\n"),
+ url, err->message);
g_error_free(err);
}
}
@@ -1215,19 +1214,6 @@ balsa_gtk_html_button_press_cb(GtkWidget * html, GdkEventButton * event,
? balsa_gtk_html_popup(html, bm) : FALSE);
}
-static void
-bm_widget_link_clicked(const gchar *url)
-{
- GError *err = NULL;
-
- gtk_show_uri(NULL, url, gtk_get_current_event_time(), &err);
- if (err) {
- balsa_information(LIBBALSA_INFORMATION_WARNING,
- _("Error showing %s: %s\n"), url, err->message);
- g_error_free(err);
- }
-}
-
BalsaMimeWidget *
bm_widget_new_html(BalsaMessage * bm, LibBalsaMessageBody * mime_body, gchar * ptr, size_t len)
{
@@ -1240,7 +1226,7 @@ bm_widget_new_html(BalsaMessage * bm, LibBalsaMessageBody * mime_body, gchar * p
(LibBalsaHtmlCallback)
bm_widget_on_url,
(LibBalsaHtmlCallback)
- bm_widget_link_clicked);
+ handle_url);
g_object_set_data(G_OBJECT(mw->widget), "mime-body", mime_body);
g_signal_connect(G_OBJECT(mw->widget), "button-press-event",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]