aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sb.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/sb.c b/sb.c
index a5029ed..f549b57 100644
--- a/sb.c
+++ b/sb.c
@@ -16,6 +16,7 @@ static void link_hover_cb (WebKitWebView* page, const gchar* title, const gchar*
static void title_change_cb(WebKitWebView *v, WebKitWebFrame *f, const char *title, tab *t);
static void progress_change_cb (WebKitWebView* page, gint progress, gpointer data);
static void load_commit_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data);
+static void load_uri(gchar *uri);
static void go_cb(gboolean b);
static void tab_new();
static void tab_zoom(gboolean b);
@@ -65,6 +66,11 @@ static void load_commit_cb (WebKitWebView* p, WebKitWebFrame* frame, gpointer da
gtk_entry_set_text (GTK_ENTRY (w.bar), uri);
}
+static void load_uri(gchar *uri) {
+ struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)));
+ webkit_web_view_load_uri(t->view, uri);
+};
+
static void tab_zoom (gboolean b) {
struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)));
if (b) { webkit_web_view_set_zoom_level(t->view, (webkit_web_view_get_zoom_level(t->view) + .05)); }
@@ -167,7 +173,6 @@ static void config() {
gboolean key_press_cb (GtkWidget *widget, GdkEventKey *event) {
if (event->state == GDK_CONTROL_MASK) {
- if (gdk_keyval_to_lower(event->keyval) == GDK_f) { gtk_widget_grab_focus(GTK_WIDGET(w.bar)); return TRUE; }
if (gdk_keyval_to_lower(event->keyval) == GDK_l) { gtk_widget_grab_focus(GTK_WIDGET(w.bar)); return TRUE; }
if (gdk_keyval_to_lower(event->keyval) == GDK_j) { go_cb(FALSE); return TRUE; }
if (gdk_keyval_to_lower(event->keyval) == GDK_k) { go_cb(TRUE); return TRUE; }
@@ -175,10 +180,14 @@ if (event->state == GDK_CONTROL_MASK) {
if (gdk_keyval_to_lower(event->keyval) == GDK_w) { tab_close(); return TRUE; }
if (gdk_keyval_to_lower(event->keyval) == GDK_bracketright) { tab_zoom(TRUE); return TRUE; }
if (gdk_keyval_to_lower(event->keyval) == GDK_bracketleft) { tab_zoom(FALSE); return TRUE; }
+ if (gtk_widget_has_focus(w.bar) && gdk_keyval_to_lower(event->keyval) == GDK_Return) {
+ load_uri(g_strconcat("http://www.google.com/search?q=", gtk_entry_get_text(GTK_ENTRY(w.bar)), NULL));
+ return TRUE;
+ }
else { return FALSE; }
}
if (gtk_widget_has_focus(w.bar) && gdk_keyval_to_lower(event->keyval) == GDK_Escape) { gtk_widget_grab_focus(GTK_WIDGET(w.notebook)); return TRUE; }
-
+
return FALSE;
}