aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrédéric Péters <fpeters@0d.be>2009-10-10 02:07:20 +0800
committerXan Lopez <xan@gnome.org>2009-10-19 00:32:28 +0800
commit7a31aae32f3638ec99f432795f5c721b60e67268 (patch)
tree9e37102406b2c55080b26c11ae12b8d3d78309ae
parent437e08e9303dfe186d14b1cd3b2e9226c61feb4e (diff)
downloadgsoc2013-epiphany-7a31aae32f3638ec99f432795f5c721b60e67268.tar
gsoc2013-epiphany-7a31aae32f3638ec99f432795f5c721b60e67268.tar.gz
gsoc2013-epiphany-7a31aae32f3638ec99f432795f5c721b60e67268.tar.bz2
gsoc2013-epiphany-7a31aae32f3638ec99f432795f5c721b60e67268.tar.lz
gsoc2013-epiphany-7a31aae32f3638ec99f432795f5c721b60e67268.tar.xz
gsoc2013-epiphany-7a31aae32f3638ec99f432795f5c721b60e67268.tar.zst
gsoc2013-epiphany-7a31aae32f3638ec99f432795f5c721b60e67268.zip
Pass mailto: URI to gtk_show_uri()
(Part of) Bug #584537 Signed-off-by: Xan Lopez <xan@gnome.org>
-rw-r--r--embed/ephy-embed-utils.c1
-rw-r--r--src/ephy-window.c8
2 files changed, 9 insertions, 0 deletions
diff --git a/embed/ephy-embed-utils.c b/embed/ephy-embed-utils.c
index d937d2e4b..eb7c434c2 100644
--- a/embed/ephy-embed-utils.c
+++ b/embed/ephy-embed-utils.c
@@ -92,6 +92,7 @@ ephy_embed_utils_address_has_web_scheme (const char *address)
g_str_has_prefix (address, "data:") ||
g_str_has_prefix (address, "about:") ||
g_str_has_prefix (address, "javascript:") ||
+ g_str_has_prefix (address, "mailto:") ||
g_str_has_prefix (address, "gopher:"));
return has_web_scheme;
diff --git a/src/ephy-window.c b/src/ephy-window.c
index 59a06c72d..61cc17c8c 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -2529,10 +2529,18 @@ policy_decision_required_cb (WebKitWebView *web_view,
WebKitWebNavigationReason reason;
gint button;
gint state;
+ const char *uri;
reason = webkit_web_navigation_action_get_reason (action);
button = webkit_web_navigation_action_get_button (action);
state = webkit_web_navigation_action_get_modifier_state (action);
+ uri = webkit_network_request_get_uri (request);
+
+ if (g_str_has_prefix (uri, "mailto:")) {
+ webkit_web_policy_decision_ignore (decision);
+ gtk_show_uri (NULL, uri, GDK_CURRENT_TIME, NULL);
+ return TRUE;
+ }
/* Open in new tab for middle click or ctrl+click */
if (reason == WEBKIT_WEB_NAVIGATION_REASON_LINK_CLICKED &&