aboutsummaryrefslogtreecommitdiff
path: root/callbacks.c
diff options
context:
space:
mode:
authormutantturkey <crazycal00@gmail.com>2011-05-17 23:44:15 -0400
committermutantturkey <crazycal00@gmail.com>2011-05-17 23:44:15 -0400
commit8c189045d953c4dc42076776d6f853a692421a42 (patch)
treec58b5ba540bba60bd178e76fc9823b049cffd6bc /callbacks.c
parenta8f412ce4316566396048e394271f6708642e094 (diff)
move cb_keypress to callbacks.c, fixed a few warnings, added functions to sb.h
Diffstat (limited to 'callbacks.c')
-rw-r--r--callbacks.c39
1 files changed, 38 insertions, 1 deletions
diff --git a/callbacks.c b/callbacks.c
index 27bdaf1..23c745b 100644
--- a/callbacks.c
+++ b/callbacks.c
@@ -7,8 +7,44 @@
#include <glib/gstdio.h>
#include "defaults.h"
#include "callbacks.h"
-
#include "sb.h"
+
+
+/* key press callback function. NEEDED: a config.h where keys are defined */
+gboolean cb_keypress (GtkWidget *widget, GdkEventKey *event) {
+guint(g) = event->keyval;
+
+if ( (event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK ) {
+ switch(g) {
+ case GDK_l: grab_bar(); return TRUE; break;
+ case GDK_f: show_search(TRUE); return TRUE; break;
+ case GDK_g: tab_and_go(); return TRUE; break;
+ case GDK_KEY_comma: cb_go(FALSE); return TRUE; break;
+ case GDK_KEY_period: cb_go(TRUE); return TRUE; break;
+ case GDK_o: history_command(); return TRUE; break;
+ case GDK_h: toggle(); focus_view(); return TRUE; break;
+ case GDK_Page_Up: tab_switch(FALSE); return TRUE; break;
+ case GDK_Page_Down: tab_switch(TRUE); return TRUE; break;
+ case GDK_t: tab_new(FALSE); gtk_widget_grab_focus(w.bar); return TRUE; break;
+ case GDK_w: tab_close(); return TRUE; break;
+ case GDK_bracketright: tab_zoom(TRUE); return TRUE; break;
+ case GDK_bracketleft: tab_zoom(FALSE); return TRUE; break;
+ case GDK_r: tab_reload(); return TRUE; break;
+ case GDK_s: tab_view_source(); return TRUE; break;
+ case GDK_Return: load_uri(g_strconcat(DEFAULT_SEARCH, gtk_entry_get_text(GTK_ENTRY(w.bar)), NULL)); return TRUE; break;
+ default: return FALSE; break;
+ }
+
+}
+
+if (gtk_widget_has_focus(w.bar) && g == GDK_Escape) { gtk_widget_grab_focus(GTK_WIDGET(w.notebook)); return TRUE; }
+if (gtk_widget_has_focus(w.search)) {
+ if (g == GDK_Escape) { show_search(FALSE); focus_view(); return TRUE; }
+ if ((g == GDK_Return) && (event->state & GDK_MOD1_MASK) == GDK_MOD1_MASK) { search(NULL, FALSE); }
+}
+return FALSE;
+}
+
/* download callback */
void cb_download(WebKitWebView *web_view, GObject *d, gpointer user_data) {
const gchar *c = webkit_download_get_uri(WEBKIT_DOWNLOAD(d));
@@ -39,6 +75,7 @@ if (b) { webkit_web_view_go_forward(t->view); }
else { webkit_web_view_go_back(t->view); }
}
+
/* when the page load is commited, call this function */
void cb_commit_load (WebKitWebView* page, WebKitWebFrame* frame, tab *t) {