[Xfce4-commits] <midori:master> Forward mailto: links to external default application
Christian Dywan
noreply at xfce.org
Sun Sep 20 21:00:04 CEST 2009
Updating branch refs/heads/master
to d73ccf2c3f671870ec092a5cac05e3fda7d1e612 (commit)
from 0250d762c1f882a70dc4cf549ab4d90463ad06ba (commit)
commit d73ccf2c3f671870ec092a5cac05e3fda7d1e612
Author: Christian Dywan <christian at twotoasts.de>
Date: Sun Sep 20 20:56:52 2009 +0200
Forward mailto: links to external default application
midori/midori-view.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/midori/midori-view.c b/midori/midori-view.c
index d51e0f8..c949122 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -701,6 +701,26 @@ midori_view_update_load_status (MidoriView* view,
view->load_status != MIDORI_LOAD_FINISHED);
}
+static gboolean
+midori_view_web_view_navigation_decision_cb (WebKitWebView* web_view,
+ WebKitWebFrame* web_frame,
+ WebKitNetworkRequest* request,
+ WebKitWebNavigationAction* action,
+ WebKitWebPolicyDecision* decision,
+ MidoriView* view)
+{
+ const gchar* uri = webkit_network_request_get_uri (request);
+ if (g_str_has_prefix (uri, "mailto:"))
+ {
+ webkit_web_policy_decision_ignore (decision);
+ sokoke_show_uri (gtk_widget_get_screen (GTK_WIDGET (web_view)),
+ uri, GDK_CURRENT_TIME, NULL);
+ return TRUE;
+ }
+ /* TODO: Handle more external protocols */
+ return FALSE;
+}
+
static void
webkit_web_view_load_started_cb (WebKitWebView* web_view,
WebKitWebFrame* web_frame,
@@ -2388,6 +2408,8 @@ midori_view_construct_web_view (MidoriView* view)
web_frame = webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW (view->web_view));
g_object_connect (view->web_view,
+ "signal::navigation-policy-decision-requested",
+ midori_view_web_view_navigation_decision_cb, view,
"signal::load-started",
webkit_web_view_load_started_cb, view,
"signal::load-committed",
More information about the Xfce4-commits
mailing list