commit d67de3a9a09ca96c993b987868f28f70ac83fc52
parent 9215a55624edb1563dda2861872acc2ee2a405cb
Author: Enno Boland (tox) <tox@s01.de>
Date:   Wed,  9 Sep 2009 21:58:13 +0200
added scrolling.
Diffstat:
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git 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
@@ -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);
@@ -529,6 +530,22 @@ rereadcookies() {
 }
 
 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) {
 
 }