dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit 19dcbc5717bdcef4bcb5be6966be7d86f88152d6
parent d2a4952956aa21a48ac40d7f650036682cb9d97d
Author: arg@mig29 <unknown>
Date:   Mon, 27 Nov 2006 17:49:58 +0100

returning to old Key struct
Diffstat:
Mconfig.arg.h | 59+++++++++++++++++++++++++++++------------------------------
Mconfig.default.h | 65++++++++++++++++++++++++++++++++---------------------------------
Mevent.c | 9++++-----
3 files changed, 65 insertions(+), 68 deletions(-)
diff --git a/config.arg.h b/config.arg.h
@@ -19,44 +19,43 @@ const char *tags[] = { "dev", "work", "net", "fnord", NULL };
 
 #define MASTER            600        /* per thousand */
 #define MODKEY            Mod1Mask
-#define NFUNCS            1        /* number of funcs per key */
 #define SNAP            40        /* pixel */
 
 #define KEYS \
 static Key key[] = { \
-    /* modifier            key        functions        arguments */ \
-    { MODKEY|ShiftMask,        XK_Return,    { spawn }, \
+    /* modifier            key        function        argument */ \
+    { MODKEY|ShiftMask,        XK_Return,    spawn, \
         { .cmd = "exec urxvtc -tr -bg black -fg '#eeeeee' -cr '#eeeeee' +sb -fn '"FONT"'" } }, \
-    { MODKEY,            XK_p,        { spawn }, \
+    { MODKEY,            XK_p,        spawn, \
         { .cmd = "exe=\"$(lsx `echo $PATH | sed 's/:/ /g'` | sort -u " \
             " | dmenu -font '"FONT"' -normbg '"NORMBGCOLOR"' -normfg '"NORMFGCOLOR"' " \
             "-selbg '"SELBGCOLOR"' -selfg '"SELFGCOLOR"')\" && exec $exe" } }, \
-    { MODKEY,            XK_j,        { focusnext },        { 0 } }, \
-    { MODKEY,            XK_k,        { focusprev },        { 0 } }, \
-    { MODKEY,            XK_Return,    { zoom },        { 0 } }, \
-    { MODKEY,            XK_g,        { resizemaster },    { .i = 15 } }, \
-    { MODKEY,            XK_s,        { resizemaster },    { .i = -15 } }, \
-    { MODKEY|ShiftMask,        XK_1,        { tag },        { .i = 0 } }, \
-    { MODKEY|ShiftMask,        XK_2,        { tag },        { .i = 1 } }, \
-    { MODKEY|ShiftMask,        XK_3,        { tag },        { .i = 2 } }, \
-    { MODKEY|ShiftMask,        XK_4,        { tag },        { .i = 3 } }, \
-    { MODKEY|ControlMask|ShiftMask,    XK_1,        { toggletag },        { .i = 0 } }, \
-    { MODKEY|ControlMask|ShiftMask,    XK_2,        { toggletag },        { .i = 1 } }, \
-    { MODKEY|ControlMask|ShiftMask,    XK_3,        { toggletag },        { .i = 2 } }, \
-    { MODKEY|ControlMask|ShiftMask,    XK_4,        { toggletag },        { .i = 3 } }, \
-    { MODKEY|ShiftMask,        XK_c,        { killclient },        { 0 } }, \
-    { MODKEY,            XK_space,    { togglemode },        { 0 } }, \
-    { MODKEY|ShiftMask,        XK_space,    { togglefloat },    { 0 } }, \
-    { MODKEY,            XK_0,        { viewall },        { 0 } }, \
-    { MODKEY,            XK_1,        { view },        { .i = 0 } }, \
-    { MODKEY,            XK_2,        { view },        { .i = 1 } }, \
-    { MODKEY,            XK_3,        { view },        { .i = 2 } }, \
-    { MODKEY,            XK_4,        { view },        { .i = 3 } }, \
-    { MODKEY|ControlMask,        XK_1,        { toggleview },        { .i = 0 } }, \
-    { MODKEY|ControlMask,        XK_2,        { toggleview },        { .i = 1 } }, \
-    { MODKEY|ControlMask,        XK_3,        { toggleview },        { .i = 2 } }, \
-    { MODKEY|ControlMask,        XK_4,        { toggleview },        { .i = 3 } }, \
-    { MODKEY|ShiftMask,        XK_q,        { quit },        { 0 } }, \
+    { MODKEY,            XK_j,        focusnext,    { 0 } }, \
+    { MODKEY,            XK_k,        focusprev,    { 0 } }, \
+    { MODKEY,            XK_Return,    zoom,        { 0 } }, \
+    { MODKEY,            XK_g,        resizemaster,    { .i = 15 } }, \
+    { MODKEY,            XK_s,        resizemaster,    { .i = -15 } }, \
+    { MODKEY|ShiftMask,        XK_1,        tag,        { .i = 0 } }, \
+    { MODKEY|ShiftMask,        XK_2,        tag,        { .i = 1 } }, \
+    { MODKEY|ShiftMask,        XK_3,        tag,        { .i = 2 } }, \
+    { MODKEY|ShiftMask,        XK_4,        tag,        { .i = 3 } }, \
+    { MODKEY|ControlMask|ShiftMask,    XK_1,        toggletag,    { .i = 0 } }, \
+    { MODKEY|ControlMask|ShiftMask,    XK_2,        toggletag,    { .i = 1 } }, \
+    { MODKEY|ControlMask|ShiftMask,    XK_3,        toggletag,    { .i = 2 } }, \
+    { MODKEY|ControlMask|ShiftMask,    XK_4,        toggletag,    { .i = 3 } }, \
+    { MODKEY|ShiftMask,        XK_c,        killclient,    { 0 } }, \
+    { MODKEY,            XK_space,    togglemode,    { 0 } }, \
+    { MODKEY|ShiftMask,        XK_space,    togglefloat,    { 0 } }, \
+    { MODKEY,            XK_0,        viewall,    { 0 } }, \
+    { MODKEY,            XK_1,        view,        { .i = 0 } }, \
+    { MODKEY,            XK_2,        view,        { .i = 1 } }, \
+    { MODKEY,            XK_3,        view,        { .i = 2 } }, \
+    { MODKEY,            XK_4,        view,        { .i = 3 } }, \
+    { MODKEY|ControlMask,        XK_1,        toggleview,    { .i = 0 } }, \
+    { MODKEY|ControlMask,        XK_2,        toggleview,    { .i = 1 } }, \
+    { MODKEY|ControlMask,        XK_3,        toggleview,    { .i = 2 } }, \
+    { MODKEY|ControlMask,        XK_4,        toggleview,    { .i = 3 } }, \
+    { MODKEY|ShiftMask,        XK_q,        quit,        { 0 } }, \
 };
 
 #define RULES \
diff --git a/config.default.h b/config.default.h
@@ -19,43 +19,42 @@ const char *tags[] = { "1", "2", "3", "4", "5", NULL };
 
 #define MASTER            600        /* per thousand */
 #define MODKEY            Mod1Mask
-#define NFUNCS            1        /* number of funcs per key */
 #define SNAP            20        /* pixel */
 
 #define KEYS \
 static Key key[] = { \
-    /* modifier            key        functions        arguments */ \
-    { MODKEY|ShiftMask,        XK_Return,    { spawn },        { .cmd = "exec xterm" } }, \
-    { MODKEY,            XK_Tab,        { focusnext },        { 0 } }, \
-    { MODKEY|ShiftMask,        XK_Tab,        { focusprev },        { 0 } }, \
-    { MODKEY,            XK_Return,    { zoom },        { 0 } }, \
-    { MODKEY,            XK_g,        { resizemaster },    { .i = 15 } }, \
-    { MODKEY,            XK_s,        { resizemaster },    { .i = -15 } }, \
-    { MODKEY|ShiftMask,        XK_1,        { tag },        { .i = 0 } }, \
-    { MODKEY|ShiftMask,        XK_2,        { tag },        { .i = 1 } }, \
-    { MODKEY|ShiftMask,        XK_3,        { tag },        { .i = 2 } }, \
-    { MODKEY|ShiftMask,        XK_4,        { tag },        { .i = 3 } }, \
-    { MODKEY|ShiftMask,        XK_5,        { tag },        { .i = 4 } }, \
-    { MODKEY|ControlMask|ShiftMask,    XK_1,        { toggletag },        { .i = 0 } }, \
-    { MODKEY|ControlMask|ShiftMask,    XK_2,        { toggletag },        { .i = 1 } }, \
-    { MODKEY|ControlMask|ShiftMask,    XK_3,        { toggletag },        { .i = 2 } }, \
-    { MODKEY|ControlMask|ShiftMask,    XK_4,        { toggletag },        { .i = 3 } }, \
-    { MODKEY|ControlMask|ShiftMask,    XK_5,        { toggletag },        { .i = 4 } }, \
-    { MODKEY|ShiftMask,        XK_c,        { killclient },        { 0 } }, \
-    { MODKEY,            XK_space,    { togglemode },        { 0 } }, \
-    { MODKEY|ShiftMask,        XK_space,    { togglefloat },    { 0 } }, \
-    { MODKEY,            XK_0,        { viewall },        { 0 } }, \
-    { MODKEY,            XK_1,        { view },        { .i = 0 } }, \
-    { MODKEY,            XK_2,        { view },        { .i = 1 } }, \
-    { MODKEY,            XK_3,        { view },        { .i = 2 } }, \
-    { MODKEY,            XK_4,        { view },        { .i = 3 } }, \
-    { MODKEY,            XK_5,        { view },        { .i = 4 } }, \
-    { MODKEY|ControlMask,        XK_1,        { toggleview },        { .i = 0 } }, \
-    { MODKEY|ControlMask,        XK_2,        { toggleview },        { .i = 1 } }, \
-    { MODKEY|ControlMask,        XK_3,        { toggleview },        { .i = 2 } }, \
-    { MODKEY|ControlMask,        XK_4,        { toggleview },        { .i = 3 } }, \
-    { MODKEY|ControlMask,        XK_5,        { toggleview },        { .i = 4 } }, \
-    { MODKEY|ShiftMask,        XK_q,        { quit },        { 0 } }, \
+    /* modifier            key        function    argument */ \
+    { MODKEY|ShiftMask,        XK_Return,    spawn,        { .cmd = "exec xterm" } }, \
+    { MODKEY,            XK_Tab,        focusnext,    { 0 } }, \
+    { MODKEY|ShiftMask,        XK_Tab,        focusprev,    { 0 } }, \
+    { MODKEY,            XK_Return,    zoom,        { 0 } }, \
+    { MODKEY,            XK_g,        resizemaster,    { .i = 15 } }, \
+    { MODKEY,            XK_s,        resizemaster,    { .i = -15 } }, \
+    { MODKEY|ShiftMask,        XK_1,        tag,        { .i = 0 } }, \
+    { MODKEY|ShiftMask,        XK_2,        tag,        { .i = 1 } }, \
+    { MODKEY|ShiftMask,        XK_3,        tag,        { .i = 2 } }, \
+    { MODKEY|ShiftMask,        XK_4,        tag,        { .i = 3 } }, \
+    { MODKEY|ShiftMask,        XK_5,        tag,        { .i = 4 } }, \
+    { MODKEY|ControlMask|ShiftMask,    XK_1,        toggletag,    { .i = 0 } }, \
+    { MODKEY|ControlMask|ShiftMask,    XK_2,        toggletag,    { .i = 1 } }, \
+    { MODKEY|ControlMask|ShiftMask,    XK_3,        toggletag,    { .i = 2 } }, \
+    { MODKEY|ControlMask|ShiftMask,    XK_4,        toggletag,    { .i = 3 } }, \
+    { MODKEY|ControlMask|ShiftMask,    XK_5,        toggletag,    { .i = 4 } }, \
+    { MODKEY|ShiftMask,        XK_c,        killclient,    { 0 } }, \
+    { MODKEY,            XK_space,    togglemode,    { 0 } }, \
+    { MODKEY|ShiftMask,        XK_space,    togglefloat,    { 0 } }, \
+    { MODKEY,            XK_0,        viewall,    { 0 } }, \
+    { MODKEY,            XK_1,        view,        { .i = 0 } }, \
+    { MODKEY,            XK_2,        view,        { .i = 1 } }, \
+    { MODKEY,            XK_3,        view,        { .i = 2 } }, \
+    { MODKEY,            XK_4,        view,        { .i = 3 } }, \
+    { MODKEY,            XK_5,        view,        { .i = 4 } }, \
+    { MODKEY|ControlMask,        XK_1,        toggleview,    { .i = 0 } }, \
+    { MODKEY|ControlMask,        XK_2,        toggleview,    { .i = 1 } }, \
+    { MODKEY|ControlMask,        XK_3,        toggleview,    { .i = 2 } }, \
+    { MODKEY|ControlMask,        XK_4,        toggleview,    { .i = 3 } }, \
+    { MODKEY|ControlMask,        XK_5,        toggleview,    { .i = 4 } }, \
+    { MODKEY|ShiftMask,        XK_q,        quit,        { 0 } }, \
 };
 
 /* Query class:instance:title for regex matching info with following command:
diff --git a/event.c b/event.c
@@ -11,7 +11,7 @@
 typedef struct {
     unsigned long mod;
     KeySym keysym;
-    void (*func[NFUNCS])(Arg *arg);
+    void (*func)(Arg *arg);
     Arg arg;
 } Key;
 
@@ -245,7 +245,7 @@ expose(XEvent *e) {
 static void
 keypress(XEvent *e) {
     static unsigned int len = sizeof key / sizeof key[0];
-    unsigned int i, j;
+    unsigned int i;
     KeySym keysym;
     XKeyEvent *ev = &e->xkey;
 
@@ -254,9 +254,8 @@ keypress(XEvent *e) {
         if(keysym == key[i].keysym
             && CLEANMASK(key[i].mod) == CLEANMASK(ev->state))
         {
-            for(j = 0; j < NFUNCS; j++)
-                if(key[i].func[j])
-                    key[i].func[j](&key[i].arg);
+            if(key[i].func)
+                key[i].func(&key[i].arg);
             return;
         }
     }