diff options
author | mutantturkey <crazycal00@gmail.com> | 2010-05-09 12:13:31 -0400 |
---|---|---|
committer | mutantturkey <crazycal00@gmail.com> | 2010-05-09 12:13:31 -0400 |
commit | 05ebeb3b541582f4dc6b2bd1edbd434dc3d97e36 (patch) | |
tree | ea8d2154f7d9730b92f7fb2a5d02dab7fae447ea /sb.c | |
parent | bd2e6e285c44c48d961fa163e3a58c0c96ae6814 (diff) |
UI improvements, open in new tabs WORKS
Diffstat (limited to 'sb.c')
-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); |