[yelp/yelp-3-0] [yelp-view] Handle link clicks for xref links
- From: Shaun McCance <shaunm src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [yelp/yelp-3-0] [yelp-view] Handle link clicks for xref links
- Date: Mon, 19 Oct 2009 16:58:23 +0000 (UTC)
commit 7d206e20e8f252426525313c9f0cf3441e84f1e6
Author: Shaun McCance <shaunm gnome org>
Date: Mon Oct 19 11:57:46 2009 -0500
[yelp-view] Handle link clicks for xref links
libyelp/yelp-view.c | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
---
diff --git a/libyelp/yelp-view.c b/libyelp/yelp-view.c
index e56b0d6..1410cc7 100644
--- a/libyelp/yelp-view.c
+++ b/libyelp/yelp-view.c
@@ -47,6 +47,13 @@ static void yelp_view_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec);
+static gboolean view_navigation_requested (WebKitWebView *view,
+ WebKitWebFrame *frame,
+ WebKitNetworkRequest *request,
+ WebKitWebNavigationAction *action,
+ WebKitWebPolicyDecision *decision,
+ gpointer user_data);
+
static void view_clear_load (YelpView *view);
static void view_load_page (YelpView *view);
static void view_show_error_page (YelpView *view,
@@ -96,6 +103,9 @@ yelp_view_init (YelpView *view)
priv->cancellable = NULL;
priv->state = YELP_VIEW_STATE_BLANK;
+
+ g_signal_connect (view, "navigation-policy-decision-requested",
+ G_CALLBACK (view_navigation_requested), NULL);
}
static void
@@ -258,6 +268,29 @@ yelp_view_load_document (YelpView *view,
/******************************************************************************/
+static gboolean
+view_navigation_requested (WebKitWebView *view,
+ WebKitWebFrame *frame,
+ WebKitNetworkRequest *request,
+ WebKitWebNavigationAction *action,
+ WebKitWebPolicyDecision *decision,
+ gpointer user_data)
+{
+ YelpViewPrivate *priv = GET_PRIV (view);
+ YelpUri *uri;
+
+ debug_print (DB_FUNCTION, "entering\n");
+
+ uri = yelp_uri_new_relative (priv->uri,
+ webkit_network_request_get_uri (request));
+
+ webkit_web_policy_decision_ignore (decision);
+
+ yelp_view_load_uri ((YelpView *) view, uri);
+
+ return TRUE;
+}
+
static void
view_clear_load (YelpView *view)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]