diff -r 545ec6141dc4 dmenu.c --- a/dmenu.c Wed May 05 11:42:39 2010 +0100 +++ b/dmenu.c Mon May 17 17:43:33 2010 +0400 @@ -15,7 +15,6 @@ #endif /* macros */ -#define CLEANMASK(mask) (mask & ~(numlockmask | LockMask)) #define INRECT(X,Y,RX,RY,RW,RH) ((X) >= (RX) && (X) < (RX) + (RW) && (Y) >= (RY) && (Y) < (RY) + (RH)) #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define MAX(a, b) ((a) > (b) ? (a) : (b)) @@ -386,6 +385,10 @@ case XK_A: ksym = XK_Home; break; + case XK_b: + case XK_B: + ksym = XK_Left; + break; case XK_c: case XK_C: ksym = XK_Escape; @@ -394,6 +397,10 @@ case XK_E: ksym = XK_End; break; + case XK_f: + case XK_F: + ksym = XK_Right; + break; case XK_h: case XK_H: ksym = XK_BackSpace; @@ -406,6 +413,14 @@ case XK_J: ksym = XK_Return; break; + case XK_n: + case XK_N: + ksym = XK_Next; + break; + case XK_p: + case XK_P: + ksym = XK_Prior; + break; case XK_u: case XK_U: memmove(text, text + cursor, sizeof text - cursor + 1); @@ -423,30 +438,8 @@ match(text); } break; - } - } - if(CLEANMASK(e->state) & Mod1Mask) { - switch(ksym) { - default: return; - case XK_h: - ksym = XK_Left; - break; - case XK_l: - ksym = XK_Right; - break; - case XK_j: - ksym = XK_Next; - break; - case XK_k: - ksym = XK_Prior; - break; - case XK_g: - ksym = XK_Home; - break; - case XK_G: - ksym = XK_End; - break; - case XK_p: + case XK_y: + case XK_Y: { FILE *fp; char *s;