aboutsummaryrefslogtreecommitdiff
path: root/sb.c
diff options
context:
space:
mode:
Diffstat (limited to 'sb.c')
-rw-r--r--sb.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/sb.c b/sb.c
index a6c25d4..0358961 100644
--- a/sb.c
+++ b/sb.c
@@ -5,8 +5,10 @@
#include <gtk/gtk.h>
#include <webkit/webkit.h>
#include <gdk/gdkkeysyms.h>
+#include <unistd.h>
+#include <stdlib.h>
-typedef struct tab { GtkWidget *scroll; GtkWidget *label; gchar *main_title; gint load_progress; guint status_context_id; WebKitWebView *view; WebKitWebSettings *settings; } tab;
+typedef struct tab { GtkWidget *scroll; GtkWidget *label; gchar *main_title; gint load_progress; guint status_context_id; WebKitWebView *view; WebKitWebSettings *settings; } tab;
static struct { GtkWidget *win; GtkWidget *bar; GtkWidget *search; GtkWidget *vbox; GtkWidget *notebook; GtkWidget *status; } w;
#define get_tab(x, page_idx ) (struct tab*)g_object_get_qdata(G_OBJECT( gtk_notebook_get_nth_page( (GtkNotebook*)w.notebook, page_idx ) ), term_data_id);
static GQuark term_data_id = 0;
@@ -28,9 +30,8 @@ gboolean key_press_cb(GtkWidget *widget, GdkEventKey *event);
static void activate_uri_entry_cb (GtkWidget* entry, gpointer data) {
- const gchar* uri = gtk_entry_get_text (GTK_ENTRY (w.bar));
struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)));
- webkit_web_view_open (t->view, uri);
+ load_uri(g_strdup(gtk_entry_get_text (GTK_ENTRY (w.bar))));
gtk_widget_grab_focus(GTK_WIDGET(t->view));
}
@@ -67,8 +68,13 @@ 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
struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)));
- webkit_web_view_load_uri(t->view, uri);
+ u = g_strrstr(uri, "://") ? g_strdup(uri)
+ : g_strdup_printf("http://%s", uri);
+ webkit_web_view_load_uri(t->view, u);
+ g_free(u);
};
static void tab_zoom (gboolean b) {