URI: 
       Adapt scrolling - surf - [fork] surf browser, a WebKit based browser
  HTML git clone git@git.drkhsh.at/surf.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit a53dc901710fc2bf487b5d98e5b6596c572d9250
   DIR parent c4f01cd18bf69dd24153f110be500ccc59eff498
  HTML Author: Quentin Rameau <quinq@fifth.space>
       Date:   Fri, 20 Nov 2015 00:53:14 +0100
       
       Adapt scrolling
       
       In fact, we have a scrolling handle ersatz for now using JavaScript
       calls as we don't have access anymore to scrollbars.
       We'll have to manipulate the DOM directly (later).
       
       Diffstat:
         M config.def.h                        |      13 +++++++------
         M surf.c                              |      40 +++++++-------------------------
       
       2 files changed, 15 insertions(+), 38 deletions(-)
       ---
   DIR diff --git a/config.def.h b/config.def.h
       @@ -100,12 +100,13 @@ static Key keys[] = {
                { MODKEY,                GDK_KEY_l,      navigate,   { .i = +1 } },
                { MODKEY,                GDK_KEY_h,      navigate,   { .i = -1 } },
        
       -        { MODKEY,                GDK_KEY_j,      scroll_v,   { .i = +1 } },
       -        { MODKEY,                GDK_KEY_k,      scroll_v,   { .i = -1 } },
       -        { MODKEY,                GDK_KEY_b,      scroll_v,   { .i = -10000 } },
       -        { MODKEY,                GDK_KEY_space,  scroll_v,   { .i = +10000 } },
       -        { MODKEY,                GDK_KEY_i,      scroll_h,   { .i = +1 } },
       -        { MODKEY,                GDK_KEY_u,      scroll_h,   { .i = -1 } },
       +                                                             /* in page % */
       +        { MODKEY,                GDK_KEY_j,      scroll_v,   { .i = +10 } },
       +        { MODKEY,                GDK_KEY_k,      scroll_v,   { .i = -10 } },
       +        { MODKEY,                GDK_KEY_b,      scroll_v,   { .i = -50 } },
       +        { MODKEY,                GDK_KEY_space,  scroll_v,   { .i = +50 } },
       +        { MODKEY,                GDK_KEY_i,      scroll_h,   { .i = +10 } },
       +        { MODKEY,                GDK_KEY_u,      scroll_h,   { .i = -10 } },
        
                { 0,                     GDK_KEY_F11,    togglefullscreen, { 0 } },
                { 0,                     GDK_KEY_Escape, stop,       { 0 } },
   DIR diff --git a/surf.c b/surf.c
       @@ -167,9 +167,8 @@ static void progresschanged(WebKitWebView *v, GParamSpec *ps, Client *c);
        static void linkopen(Client *c, const Arg *arg);
        static void linkopenembed(Client *c, const Arg *arg);
        static void reload(Client *c, const Arg *arg);
       -static void scroll_h(Client *c, const Arg *arg);
       -static void scroll_v(Client *c, const Arg *arg);
       -static void scroll(GtkAdjustment *a, const Arg *arg);
       +static void scroll_h(Client *c, const Arg *a);
       +static void scroll_v(Client *c, const Arg *a);
        static void setatom(Client *c, int a, const char *v);
        static void setup(void);
        static void sigchld(int unused);
       @@ -1169,40 +1168,17 @@ reload(Client *c, const Arg *arg)
        }
        
        void
       -scroll_h(Client *c, const Arg *arg)
       +scroll_h(Client *c, const Arg *a)
        {
       -        scroll(gtk_scrolled_window_get_hadjustment(
       -               GTK_SCROLLED_WINDOW(c->scroll)), arg);
       +        evalscript(c, "window.scrollBy(%d * (window.innerWidth / 100), 0)",
       +            a->i);
        }
        
        void
       -scroll_v(Client *c, const Arg *arg)
       +scroll_v(Client *c, const Arg *a)
        {
       -        scroll(gtk_scrolled_window_get_vadjustment(
       -               GTK_SCROLLED_WINDOW(c->scroll)), arg);
       -}
       -
       -void
       -scroll(GtkAdjustment *a, const Arg *arg)
       -{
       -        gdouble v;
       -
       -        v = gtk_adjustment_get_value(a);
       -        switch (arg->i) {
       -        case +10000:
       -        case -10000:
       -                v += gtk_adjustment_get_page_increment(a) * (arg->i / 10000);
       -                break;
       -        case +20000:
       -        case -20000:
       -        default:
       -                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);
       +        evalscript(c, "window.scrollBy(0, %d * (window.innerHeight / 100))",
       +            a->i);
        }
        
        void