added scrolling.
authorEnno Boland (tox) <tox@s01.de>
Wed, 9 Sep 2009 19:58:13 +0000 (21:58 +0200)
committerEnno Boland (tox) <tox@s01.de>
Wed, 9 Sep 2009 19:58:13 +0000 (21:58 +0200)
config.def.h
surf.c

index 892df01..d628b76 100644 (file)
@@ -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 (file)
--- 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) {