From 3b1b6d606bbad81c4dd8b9b50f7f7aa9d56148fa Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Mon, 22 Apr 2013 07:00:19 +0000 Subject: [PATCH] --- src/main.c | 2 -- src/webbrowser.c | 21 ++++++++++++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main.c b/src/main.c index 35805df..87588b5 100644 --- a/src/main.c +++ b/src/main.c @@ -227,8 +227,6 @@ int main(int argc, char **argv) gtk_container_add(GTK_CONTAINER(panh), web_get_widget()); - gtk_builder_connect_signals(builder, NULL); - g_object_unref(G_OBJECT(builder)); gtk_widget_show_all(window); diff --git a/src/webbrowser.c b/src/webbrowser.c index 13de067..9204f57 100644 --- a/src/webbrowser.c +++ b/src/webbrowser.c @@ -23,10 +23,29 @@ static WebKitWebView *view; +static gboolean new_window_requested_cbk(WebKitWebView *view, + WebKitWebFrame *frame, + WebKitNetworkRequest *rq, + WebKitWebNavigationAction *action, + WebKitWebPolicyDecision *decision) +{ + webkit_web_view_load_uri(view, webkit_network_request_get_uri(rq)); + + webkit_web_policy_decision_ignore(decision); + + return TRUE; +} + GtkWidget *web_get_widget() { - if (!view) + if (!view) { view = WEBKIT_WEB_VIEW(webkit_web_view_new()); + g_signal_connect(view, + "new-window-policy-decision-requested", + G_CALLBACK(new_window_requested_cbk), + view); + + } return GTK_WIDGET(view); } -- 2.7.4