URI: 
       Making more than one Modkey to work in keys. - 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 0415175e10880585c765613af0bd43e02de87116
   DIR parent e784d925dfab0405cb4bf2ac7466045d8089a189
  HTML Author: Christoph Lohmann <20h@r-36.net>
       Date:   Sat, 26 Jan 2013 16:00:52 +0100
       
       Making more than one Modkey to work in keys.
       
       Diffstat:
         M config.def.h                        |       4 ++++
         M surf.c                              |       3 ++-
       
       2 files changed, 6 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/config.def.h b/config.def.h
       @@ -45,6 +45,10 @@ static Bool hidebackground  = FALSE;
        #define MODKEY GDK_CONTROL_MASK
        
        /* hotkeys */
       +/*
       + * If you use anything else but MODKEY and GDK_SHIFT_MASK, don't forget to
       + * edit the CLEANMASK() macro.
       + */
        static Key keys[] = {
            /* modifier                    keyval      function    arg             Focus */
            { MODKEY|GDK_SHIFT_MASK,GDK_r,      reload,     { .b = TRUE } },
   DIR diff --git a/surf.c b/surf.c
       @@ -28,6 +28,7 @@
        char *argv0;
        
        #define LENGTH(x)               (sizeof x / sizeof x[0])
       +#define CLEANMASK(mask)                (mask & (MODKEY|GDK_SHIFT_MASK))
        #define COOKIEJAR_TYPE          (cookiejar_get_type ())
        #define COOKIEJAR(obj)          (G_TYPE_CHECK_INSTANCE_CAST ((obj), COOKIEJAR_TYPE, CookieJar))
        
       @@ -543,7 +544,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(ev->state) == keys[i].mod
                                        && keys[i].func) {
                                keys[i].func(c, &(keys[i].arg));
                                processed = TRUE;