From 05ebeb3b541582f4dc6b2bd1edbd434dc3d97e36 Mon Sep 17 00:00:00 2001 From: mutantturkey Date: Sun, 9 May 2010 12:13:31 -0400 Subject: UI improvements, open in new tabs WORKS --- sb.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/sb.c b/sb.c index f0180c4..d337d58 100644 --- a/sb.c +++ b/sb.c @@ -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); @@ -123,6 +124,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() { @@ -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); -- cgit v1.2.3