diff options
-rw-r--r-- | sb.c | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -29,6 +29,7 @@ static void download(WebKitWebView *web_view, GObject *download, gpointer user_d static void config(); static void reload(); static void toggle(); +WebKitWebView * tab_new_requested(WebKitWebView *v, WebKitWebFrame *f); static void tab_switch(gboolean b); gboolean key_press_cb(GtkWidget *widget, GdkEventKey *event); @@ -79,7 +80,7 @@ static void load_commit_cb (WebKitWebView* p, WebKitWebFrame* frame, gpointer da static void load_uri(gchar *uri) { gchar *u; - //Barrowed from surf, no point creating another method, this seams to work well + //Barrowed from surf, no point creating another method, this seems to work well struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); u = g_strrstr(uri, "://") ? g_strdup(uri) : g_strdup_printf("http://%s", uri); @@ -124,6 +125,12 @@ if(b) { gtk_notebook_set_current_page(GTK_NOTEBOOK(w.notebook), current); } +WebKitWebView * tab_new_requested(WebKitWebView *v, WebKitWebFrame *f) { + tab_new(); + struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); + return t->view; + +} static void tab_new() { /*seperate function so it will be easier to setup the webkit crap*/ @@ -150,6 +157,7 @@ static void tab_new() { g_signal_connect (G_OBJECT (t->view), "load-committed", G_CALLBACK (load_commit_cb), t->view); g_signal_connect (G_OBJECT (t->view), "hovering-over-link", G_CALLBACK (link_hover), t->view); g_signal_connect (G_OBJECT (t->view), "download-requested", G_CALLBACK (download), t->view); + g_signal_connect (G_OBJECT (t->view), "create-web-view", G_CALLBACK (tab_new_requested), NULL); /*settings*/ g_object_set_qdata_full(G_OBJECT(gtk_notebook_get_nth_page((GtkNotebook*)w.notebook, index)), term_data_id, t, NULL); @@ -188,12 +196,12 @@ static void config() { gtk_notebook_set_scrollable(GTK_NOTEBOOK(w.notebook), TRUE); w.status = gtk_statusbar_new(); gtk_statusbar_set_has_resize_grip(GTK_STATUSBAR(w.status), FALSE); + gtk_notebook_set_show_border(GTK_NOTEBOOK(w.notebook), FALSE); - - gtk_box_pack_start(GTK_BOX (w.vbox), w.bar, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX (w.vbox), w.bar, FALSE, FALSE, 1); gtk_box_pack_start(GTK_BOX(w.vbox), w.notebook, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(w.vbox), w.status, FALSE, FALSE, 0); - + w.win = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(w.win), 800, 800); |