JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
returning to old Key struct
authorarg@mig29 <unknown>
Mon, 27 Nov 2006 16:49:58 +0000 (17:49 +0100)
committerarg@mig29 <unknown>
Mon, 27 Nov 2006 16:49:58 +0000 (17:49 +0100)
config.arg.h
config.default.h
event.c

index ce77572..ee63eb1 100644 (file)
@@ -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 \
index 1e99362..077c337 100644 (file)
@@ -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
index 45a21a6..edfcc52 100644 (file)
--- 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;
                }
        }