(no commit message)
authorJean-Philippe Orsini <jeanfi@gmail.com>
Mon, 22 Apr 2013 07:00:19 +0000 (07:00 +0000)
committerJean-Philippe Orsini <jeanfi@gmail.com>
Mon, 22 Apr 2013 07:00:19 +0000 (07:00 +0000)
src/main.c
src/webbrowser.c

index 35805df..87588b5 100644 (file)
@@ -227,8 +227,6 @@ int main(int argc, char **argv)
 
        gtk_container_add(GTK_CONTAINER(panh), web_get_widget());
 
 
        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);
        g_object_unref(G_OBJECT(builder));
 
        gtk_widget_show_all(window);
index 13de067..9204f57 100644 (file)
 
 static WebKitWebView *view;
 
 
 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()
 {
 GtkWidget *web_get_widget()
 {
-       if (!view)
+       if (!view) {
                view = WEBKIT_WEB_VIEW(webkit_web_view_new());
                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);
 }
 
        return GTK_WIDGET(view);
 }