diff -r 4fe78ffcd81e config.def.h --- a/config.def.h Tue May 25 10:38:23 2010 +0200 +++ b/config.def.h Tue May 25 16:35:38 2010 -0500 @@ -23,10 +23,12 @@ { MODKEY|GDK_SHIFT_MASK,GDK_j, zoom, { .i = -1 } }, { MODKEY|GDK_SHIFT_MASK,GDK_k, zoom, { .i = +1 } }, { MODKEY|GDK_SHIFT_MASK,GDK_i, zoom, { .i = 0 } }, - { MODKEY, GDK_l, navigate, { .i = +1 } }, - { MODKEY, GDK_h, navigate, { .i = -1 } }, - { MODKEY, GDK_j, scroll, { .i = +1 } }, - { MODKEY, GDK_k, scroll, { .i = -1 } }, + { MODKEY, GDK_f, navigate, { .i = +1 } }, + { MODKEY, GDK_b, navigate, { .i = -1 } }, + { MODKEY, GDK_j, vscroll, { .i = +1 } }, + { MODKEY, GDK_k, vscroll, { .i = -1 } }, + { MODKEY, GDK_l, hscroll, { .i = +1 } }, + { MODKEY, GDK_h, hscroll, { .i = -1 } }, { 0, GDK_Escape, stop, { 0 } }, { MODKEY, GDK_o, source, { 0 } }, { MODKEY, GDK_g, spawn, SETPROP("_SURF_URI", "_SURF_GO") }, diff -r 4fe78ffcd81e surf.1 --- a/surf.1 Tue May 25 10:38:23 2010 +0200 +++ b/surf.1 Tue May 25 16:35:38 2010 -0500 @@ -39,10 +39,10 @@ .B Escape Stops loading current page or stops download. .TP -.B Ctrl\-h +.B Ctrl\-b Walks back the history. .TP -.B Ctrl\-l +.B Ctrl\-f Walks forward the history. .TP .B Ctrl\-k @@ -51,6 +51,12 @@ .B Ctrl\-j Scrolls page downwards. .TP +.B Ctrl\-h +Scrolls page left. +.TP +.B Ctrl\-l +Scrolls page right. +.TP .B Ctrl\-Shift\-k Zooms page in. .TP diff -r 4fe78ffcd81e surf.c --- a/surf.c Tue May 25 10:38:23 2010 +0200 +++ b/surf.c Tue May 25 16:35:38 2010 -0500 @@ -82,6 +82,7 @@ static char *geturi(Client *c); void gotheaders(SoupMessage *msg, gpointer user_data); static gboolean keypress(GtkWidget *w, GdkEventKey *ev, Client *c); +static void hscroll(Client *c, const Arg *arg); static void linkhover(WebKitWebView *v, const char* t, const char* l, Client *c); static void loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c); static void loaduri(Client *c, const Arg *arg); @@ -95,7 +96,6 @@ static void progresschange(WebKitWebView *view, GParamSpec *pspec, Client *c); static void reload(Client *c, const Arg *arg); static void resize(GtkWidget *w, GtkAllocation *a, Client *c); -static void scroll(Client *c, const Arg *arg); static void setatom(Client *c, int a, const char *v); static void setcookie(SoupCookie *c); static void setup(void); @@ -107,6 +107,7 @@ static void update(Client *c); static void updatewinid(Client *c); static void usage(void); +static void vscroll(Client *c, const Arg *arg); static void windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c); static void zoom(Client *c, const Arg *arg); @@ -328,6 +329,19 @@ soup_cookies_free(l); } +void +hscroll(Client *c, const Arg *arg) { + gdouble h; + GtkAdjustment *a; + + a = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(c->scroll)); + h = gtk_adjustment_get_value(a); + h += gtk_adjustment_get_step_increment(a) * arg->i; + h = MAX(h, 0.0); + h = MIN(h, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a)); + gtk_adjustment_set_value(a, h); +} + gboolean keypress(GtkWidget* w, GdkEventKey *ev, Client *c) { guint i; @@ -616,19 +630,6 @@ } void -scroll(Client *c, const Arg *arg) { - gdouble v; - GtkAdjustment *a; - - a = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll)); - v = gtk_adjustment_get_value(a); - v += gtk_adjustment_get_step_increment(a) * arg->i; - v = MAX(v, 0.0); - v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a)); - gtk_adjustment_set_value(a, v); -} - -void setcookie(SoupCookie *c) { int lock; @@ -768,6 +769,19 @@ } void +vscroll(Client *c, const Arg *arg) { + gdouble v; + GtkAdjustment *a; + + a = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll)); + v = gtk_adjustment_get_value(a); + v += gtk_adjustment_get_step_increment(a) * arg->i; + v = MAX(v, 0.0); + v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a)); + gtk_adjustment_set_value(a, v); +} + +void windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c) { runscript(frame, js); }