From: Enno Boland (tox) Date: Wed, 9 Sep 2009 19:58:13 +0000 (+0200) Subject: added scrolling. X-Git-Url: https://git.danieliu.xyz/?a=commitdiff_plain;h=d67de3a9a09ca96c993b987868f28f70ac83fc52;p=surf.git added scrolling. --- diff --git a/config.def.h b/config.def.h index 892df01..d628b76 100644 --- a/config.def.h +++ b/config.def.h @@ -13,11 +13,13 @@ static Key keys[] = { { MODKEY, GDK_P, print, { 0 }, ALWAYS }, { MODKEY, GDK_p, clipboard, { .b = TRUE }, BROWSER }, { MODKEY, GDK_y, clipboard, { .b = FALSE }, BROWSER }, - { MODKEY, GDK_k, zoom, { .i = +1 }, BROWSER }, - { MODKEY, GDK_j, zoom, { .i = -1 }, BROWSER }, - { MODKEY, GDK_i, zoom, { .i = 0 }, BROWSER }, + { MODKEY|GDK_SHIFT_MASK,GDK_j, zoom, { .i = -1 }, BROWSER }, + { MODKEY|GDK_SHIFT_MASK,GDK_k, zoom, { .i = +1 }, BROWSER }, + { MODKEY|GDK_SHIFT_MASK,GDK_i, zoom, { .i = 0 }, BROWSER }, { MODKEY, GDK_l, navigate, { .i = +1 }, BROWSER }, { MODKEY, GDK_h, navigate, { .i = -1 }, BROWSER }, + { MODKEY, GDK_j, scroll, { .i = +1 }, BROWSER }, + { MODKEY, GDK_k, scroll, { .i = -1 }, BROWSER }, { 0, GDK_Escape, stop, { 0 }, BROWSER }, { MODKEY, GDK_o, source, { 0 }, BROWSER }, { MODKEY, GDK_n, searchtext, { .b = TRUE }, BROWSER|SEARCHBAR }, diff --git a/surf.c b/surf.c index c3df8e2..9e993ff 100644 --- a/surf.c +++ b/surf.c @@ -103,6 +103,7 @@ static void setcookie(char *name, char *val, char *dom, char *path, long exp); static void setup(); static void titlechange(WebKitWebView* view, WebKitWebFrame* frame, const gchar* title, Client *c); +static void scroll(Client *c, const Arg *arg); static void searchtext(Client *c, const Arg *arg); static void source(Client *c, const Arg *arg); static void showsearch(Client *c, const Arg *arg); @@ -528,6 +529,22 @@ rereadcookies() { filename = g_build_filename(home, ".surf", "cookies", NULL); } +void +scroll(Client *c, const Arg *arg) { + gdouble v; + int h, d; + GtkAdjustment *a; + + gdk_window_get_geometry(GTK_WIDGET(c->view)->window, &d, &d, &d, &h, &d); + 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, (double)h); + printf("%f %i\n", v, h); + gtk_adjustment_set_value (a, v); +} + void setcookie(char *name, char *val, char *dom, char *path, long exp) {