#include <string.h>
#include <glib/gi18n.h>
-#include <webkit/webkitnetworkrequest.h>
+#include <webkit/webkit.h>
#include <telepathy-glib/dbus.h>
#include <telepathy-glib/util.h>
theme_adium_update_enable_webkit_developer_tools (theme);
}
-static WebKitNavigationResponse
-theme_adium_navigation_requested_cb (WebKitWebView *view,
- WebKitWebFrame *frame,
- WebKitNetworkRequest *request,
- gpointer user_data)
+static gboolean
+theme_adium_navigation_policy_decision_requested_cb (WebKitWebView *view,
+ WebKitWebFrame *web_frame,
+ WebKitNetworkRequest *request,
+ WebKitWebNavigationAction *action,
+ WebKitWebPolicyDecision *decision,
+ gpointer data)
{
const gchar *uri;
+ /* Only call url_show on clicks */
+ if (webkit_web_navigation_action_get_reason (action) !=
+ WEBKIT_WEB_NAVIGATION_REASON_LINK_CLICKED) {
+ webkit_web_policy_decision_use (decision);
+ return TRUE;
+ }
+
uri = webkit_network_request_get_uri (request);
empathy_url_show (GTK_WIDGET (view), uri);
- return WEBKIT_NAVIGATION_RESPONSE_IGNORE;
+ webkit_web_policy_decision_ignore (decision);
+ return TRUE;
}
static void
}
/* Append the link inside <a href=""></a> tag */
- real_url = empathy_make_absolute_url (text + s);
+ real_url = empathy_make_absolute_url_len (text + s, e - s);
g_string_append (string, "<a href=\"");
g_string_append (string, real_url);
/* Get information */
sender = empathy_message_get_sender (msg);
account = empathy_contact_get_account (sender);
- service_name = empathy_account_get_protocol (account);
+ service_name = empathy_protocol_name_to_display_name
+ (empathy_account_get_protocol (account));
+ if (service_name == NULL)
+ service_name = empathy_account_get_protocol (account);
timestamp = empathy_message_get_timestamp (msg);
body = empathy_message_get_body (msg);
dup_body = theme_adium_parse_body (theme, body);
g_signal_connect (theme, "load-finished",
G_CALLBACK (theme_adium_load_finished_cb),
NULL);
- g_signal_connect (theme, "navigation-requested",
- G_CALLBACK (theme_adium_navigation_requested_cb),
+ g_signal_connect (theme, "navigation-policy-decision-requested",
+ G_CALLBACK (theme_adium_navigation_policy_decision_requested_cb),
NULL);
g_signal_connect (theme, "populate-popup",
G_CALLBACK (theme_adium_populate_popup_cb),