On Sun, May 16, 2010 at 04:25:45AM +0400, anonymous wrote:
> Also removing Alt keybindings will simplify dmenu code: there will be
> only one switch instead of two, one "default" branch instead of two,
> less manipulation with masks and everytihing else related.
>
Patch (-7 loc) attached. BTW can someone explain where Alt-g and
Alt-G originated from?
Even if it will not be applied, line 430
default: return;
should be changed to
default:
return;
to follow common style (lines 383-384).
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;