Fixing the shift key mask and cleaning up the scrolling code. - surf - Surf web browser.
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 23def74c9814c1db25081965febd8424c3207e2c
 (DIR) parent e28d27249e4c24a8f9c131911536d99b5b6c4587
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Fri, 12 Oct 2012 11:48:38 +0200
       
       Fixing the shift key mask and cleaning up the scrolling code.
       Diffstat:
         surf.c                              |      44 ++++++++++++++++++-------------
       
       1 file changed, 26 insertions(+), 18 deletions(-)
       ---
 (DIR) diff --git a/surf.c b/surf.c
       @@ -21,6 +21,7 @@
        #include <sys/file.h>
        
        #define LENGTH(x)               (sizeof x / sizeof x[0])
       +#define CLEANMASK(mask)         (mask & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask))
        
        enum { AtomFind, AtomGo, AtomUri, AtomLast };
        
       @@ -360,7 +361,7 @@ keypress(GtkWidget* w, GdkEventKey *ev, Client *c) {
                updatewinid(c);
                for(i = 0; i < LENGTH(keys); i++) {
                        if(gdk_keyval_to_lower(ev->keyval) == keys[i].keyval
       -                                && (ev->state & keys[i].mod) == keys[i].mod
       +                                && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
                                        && keys[i].func) {
                                keys[i].func(c, &(keys[i].arg));
                                processed = TRUE;
       @@ -648,31 +649,37 @@ reload(Client *c, const Arg *arg) {
        
        void
        scroll_h(Client *c, const Arg *arg) {
       - scroll(gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(c->scroll)), arg);
       +        scroll(gtk_scrolled_window_get_hadjustment(
       +                                GTK_SCROLLED_WINDOW(c->scroll)), arg);
        }
        
        void
        scroll_v(Client *c, const Arg *arg) {
       - scroll(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll)), arg);
       +        scroll(gtk_scrolled_window_get_vadjustment(
       +                                GTK_SCROLLED_WINDOW(c->scroll)), arg);
        }
        
        void
        scroll(GtkAdjustment *a, const Arg *arg) {
       - gdouble v;
       +        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 = 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);
       +        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
       @@ -782,7 +789,8 @@ spawn(Client *c, const Arg *arg) {
        void
        eval(Client *c, const Arg *arg) {
                WebKitWebFrame *frame = webkit_web_view_get_main_frame(c->view);
       -        evalscript(webkit_web_frame_get_global_context(frame), ((char **)arg->v)[0], "");
       +        evalscript(webkit_web_frame_get_global_context(frame),
       +                        ((char **)arg->v)[0], "");
        }
        
        void