added evil key support to dmenu
This commit is contained in:
		
							parent
							
								
									6ceff97643
								
							
						
					
					
						commit
						46cce31caa
					
				@ -15,6 +15,8 @@
 | 
			
		||||
#include <X11/Xutil.h>
 | 
			
		||||
#include <X11/keysym.h>
 | 
			
		||||
 | 
			
		||||
#define CLEANMASK(mask) (mask & ~(numlockmask | LockMask))
 | 
			
		||||
 | 
			
		||||
typedef struct Item Item;
 | 
			
		||||
struct Item {
 | 
			
		||||
	Item *next;		/* traverses all items */
 | 
			
		||||
@ -31,6 +33,7 @@ static int ret = 0;
 | 
			
		||||
static int nitem = 0;
 | 
			
		||||
static unsigned int cmdw = 0;
 | 
			
		||||
static unsigned int promptw = 0;
 | 
			
		||||
static unsigned int numlockmask = 0;
 | 
			
		||||
static Bool running = True;
 | 
			
		||||
static Item *allitems = NULL;	/* first of all items */
 | 
			
		||||
static Item *item = NULL;	/* first of pattern matching items */
 | 
			
		||||
@ -187,7 +190,7 @@ kpress(XKeyEvent * e) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if(e->state & Mod1Mask) {
 | 
			
		||||
	if(CLEANMASK(e->state) & Mod1Mask) {
 | 
			
		||||
		switch(ksym) {
 | 
			
		||||
		default: return;
 | 
			
		||||
		case XK_h:
 | 
			
		||||
@ -347,10 +350,11 @@ main(int argc, char *argv[]) {
 | 
			
		||||
	char *selbg = SELBGCOLOR;
 | 
			
		||||
	char *selfg = SELFGCOLOR;
 | 
			
		||||
	fd_set rd;
 | 
			
		||||
	int i;
 | 
			
		||||
	int i, j;
 | 
			
		||||
	struct timeval timeout;
 | 
			
		||||
	Item *itm;
 | 
			
		||||
	XEvent ev;
 | 
			
		||||
	XModifierKeymap *modmap;
 | 
			
		||||
	XSetWindowAttributes wa;
 | 
			
		||||
 | 
			
		||||
	timeout.tv_usec = 0;
 | 
			
		||||
@ -408,6 +412,15 @@ main(int argc, char *argv[]) {
 | 
			
		||||
	if(select(ConnectionNumber(dpy) + 1, &rd, NULL, NULL, &timeout) < 1)
 | 
			
		||||
		goto UninitializedEnd;
 | 
			
		||||
	maxname = readstdin();
 | 
			
		||||
	/* init modifier map */
 | 
			
		||||
	modmap = XGetModifierMapping(dpy);
 | 
			
		||||
	for (i = 0; i < 8; i++) {
 | 
			
		||||
		for (j = 0; j < modmap->max_keypermod; j++) {
 | 
			
		||||
			if(modmap->modifiermap[i * modmap->max_keypermod + j] == XKeysymToKeycode(dpy, XK_Num_Lock))
 | 
			
		||||
				numlockmask = (1 << i);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	XFreeModifiermap(modmap);
 | 
			
		||||
	/* style */
 | 
			
		||||
	dc.norm[ColBG] = getcolor(normbg);
 | 
			
		||||
	dc.norm[ColFG] = getcolor(normfg);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user