diff options
Diffstat (limited to 'sb.c')
-rw-r--r-- | sb.c | 28 |
1 files changed, 15 insertions, 13 deletions
@@ -12,6 +12,7 @@ #include <stdio.h> #include <webkit/webkit.h> #include <glib/gstdio.h> +#include <libsoup/soup.h> typedef struct tab { GtkWidget *scroll; @@ -20,15 +21,16 @@ typedef struct tab { gchar *url_entry; gint load_progress; guint status_context_id; - WebKitWebView *view; + WebKitWebView *view; } tab; static struct { WebKitWebSettings *webkitsettings; WebKitWebWindowFeatures *webkitwindowfeatures; + SoupCookieJar *session; gboolean hide; GtkWidget *win; - GtkWidget *bar; + GtkWidget *bar; GtkWidget *search; GtkWidget *vbox; GtkWidget *notebook; @@ -46,27 +48,27 @@ static struct { static GQuark term_data_id = 0; static void cb_entry(GtkWidget* entry, gpointer data); +static void cb_go(gboolean b); +static void cb_download(WebKitWebView *web_view, GObject *download, gpointer user_data); static void link_hover(WebKitWebView* page, const gchar* title, const gchar* link, gpointer data); static void title_change_cb(WebKitWebView *v, WebKitWebFrame *f, const char *title, tab *t); static void load_commit_cb (WebKitWebView* page, WebKitWebFrame* frame, tab *t); static void load_uri(gchar *uri); -static void cb_go(gboolean b); static void tab_new(gboolean b); static void tab_zoom(gboolean b); static void tab_close(); static void tab_and_go(); static void tab_focus(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data); -static void cb_download(WebKitWebView *web_view, GObject *download, gpointer user_data); -static void window_setup(); +static void tab_view_source(); static void tab_reload(); +static void window_setup(); static void search(GtkEntry *entry, gboolean b); static void toggle(); static void show_search(gboolean b); -static void tab_view_source(); static void focus_view(); WebKitWebView * tab_new_requested(WebKitWebView *v, WebKitWebFrame *f); static void tab_switch(gboolean b); -gboolean key_press_cb(GtkWidget *widget, GdkEventKey *event); +gboolean cb_keypress(GtkWidget *widget, GdkEventKey *event); static void search(GtkEntry *entry, gboolean b) { @@ -102,12 +104,11 @@ w.hide = FALSE; /* Basic reload function */ static void tab_reload() { - - struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); - webkit_web_view_reload(t->view); - +struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); +webkit_web_view_reload(t->view); } + /* close tab, and quit if there are no tabs */ static void tab_close() { struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); @@ -379,13 +380,14 @@ gtk_window_set_default_size(GTK_WINDOW(w.win), 800, 800); w.webkitsettings = webkit_web_settings_new(); w.webkitwindowfeatures = webkit_web_window_features_new(); +w.session = soup_cookie_jar_text_new(g_strconcat(g_get_home_dir(), ".sb_cookies", NULL ) , FALSE); tab_new(FALSE); g_signal_connect (G_OBJECT (w.search), "activate", G_CALLBACK (search), GINT_TO_POINTER(1)); g_signal_connect (G_OBJECT (w.bar), "activate", G_CALLBACK (cb_entry), NULL); g_signal_connect (G_OBJECT(w.notebook), "switch-page", G_CALLBACK(tab_focus), NULL); g_signal_connect (G_OBJECT (w.win), "destroy", G_CALLBACK (gtk_main_quit), NULL); -g_signal_connect(w.win, "key-press-event", G_CALLBACK(key_press_cb), NULL); +g_signal_connect(w.win, "key-press-event", G_CALLBACK(cb_keypress), NULL); gtk_container_add (GTK_CONTAINER (w.win), w.vbox); gtk_widget_show_all (w.win); @@ -396,7 +398,7 @@ gtk_widget_grab_focus(w.bar); /* key press callback function. NEEDED: a config.h where keys are defined */ -gboolean key_press_cb (GtkWidget *widget, GdkEventKey *event) { +gboolean cb_keypress (GtkWidget *widget, GdkEventKey *event) { guint(g) = event->keyval; if ( (event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK ) { |