updated to new libdraw
							parent
							
								
									d9c24564d2
								
							
						
					
					
						commit
						29e8faed6c
					
				
							
								
								
									
										31
									
								
								dinput.c
								
								
								
								
							
							
						
						
									
										31
									
								
								dinput.c
								
								
								
								
							|  | @ -21,9 +21,8 @@ | |||
| 
 | ||||
| /* forward declarations */ | ||||
| static void cleanup(void); | ||||
| static void drawcursor(void); | ||||
| static void drawinput(void); | ||||
| static Bool grabkeyboard(void); | ||||
| static void grabkeyboard(void); | ||||
| static void kpress(XKeyEvent *e); | ||||
| static void run(void); | ||||
| static void setup(void); | ||||
|  | @ -35,7 +34,7 @@ static char *prompt = NULL; | |||
| static char text[4096]; | ||||
| static int promptw = 0; | ||||
| static int screen; | ||||
| static unsigned int cursor = 0; | ||||
| static size_t cursor = 0; | ||||
| static unsigned int numlockmask = 0; | ||||
| static unsigned int mw, mh; | ||||
| static unsigned long normcol[ColLast]; | ||||
|  | @ -53,16 +52,6 @@ cleanup(void) { | |||
| 	XCloseDisplay(dpy); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| drawcursor(void) { | ||||
| 	XRectangle r = { dc.x, dc.y + 2, 1, dc.font.height - 2 }; | ||||
| 
 | ||||
| 	r.x += textnw(&dc, text, cursor) + dc.font.height / 2; | ||||
| 
 | ||||
| 	XSetForeground(dpy, dc.gc, normcol[ColFG]); | ||||
| 	XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| drawinput(void) | ||||
| { | ||||
|  | @ -70,30 +59,30 @@ drawinput(void) | |||
| 	dc.y = 0; | ||||
| 	dc.w = mw; | ||||
| 	dc.h = mh; | ||||
| 	drawtext(&dc, NULL, normcol, False); | ||||
| 	drawtext(&dc, NULL, normcol); | ||||
| 	/* print prompt? */ | ||||
| 	if(prompt) { | ||||
| 		dc.w = promptw; | ||||
| 		drawtext(&dc, prompt, selcol, False); | ||||
| 		drawtext(&dc, prompt, selcol); | ||||
| 		dc.x += dc.w; | ||||
| 	} | ||||
| 	dc.w = mw - dc.x; | ||||
| 	drawtext(&dc, *text ? text : NULL, normcol, False); | ||||
| 	drawcursor(); | ||||
| 	XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, mw, mh, 0, 0); | ||||
| 	drawtext(&dc, text, normcol); | ||||
| 	drawcursor(&dc, text, cursor, normcol); | ||||
| 	commitdraw(&dc, win); | ||||
| } | ||||
| 
 | ||||
| Bool | ||||
| void | ||||
| grabkeyboard(void) { | ||||
| 	unsigned int len; | ||||
| 
 | ||||
| 	for(len = 1000; len; len--) { | ||||
| 		if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) | ||||
| 		== GrabSuccess) | ||||
| 			break; | ||||
| 			return; | ||||
| 		usleep(1000); | ||||
| 	} | ||||
| 	return len > 0; | ||||
| 	exit(EXIT_FAILURE); | ||||
| } | ||||
| 
 | ||||
| void | ||||
|  |  | |||
							
								
								
									
										21
									
								
								dmenu.c
								
								
								
								
							
							
						
						
									
										21
									
								
								dmenu.c
								
								
								
								
							|  | @ -162,25 +162,25 @@ drawmenu(void) { | |||
| 	dc.y = 0; | ||||
| 	dc.w = mw; | ||||
| 	dc.h = mh; | ||||
| 	drawtext(&dc, NULL, normcol, False); | ||||
| 	drawtext(&dc, NULL, normcol); | ||||
| 	dc.h = dc.font.height + 2; | ||||
| 	dc.y = topbar ? 0 : mh - dc.h; | ||||
| 	/* print prompt? */ | ||||
| 	if(prompt) { | ||||
| 		dc.w = promptw; | ||||
| 		drawtext(&dc, prompt, selcol, False); | ||||
| 		drawtext(&dc, prompt, selcol); | ||||
| 		dc.x += dc.w; | ||||
| 	} | ||||
| 	dc.w = mw - dc.x; | ||||
| 	/* print command */ | ||||
| 	if(cmdw && item && lines == 0) | ||||
| 		dc.w = cmdw; | ||||
| 	drawtext(&dc, *text ? text : NULL, normcol, False); | ||||
| 	drawtext(&dc, text, normcol); | ||||
| 	if(lines > 0) | ||||
| 		drawmenuv(); | ||||
| 	else if(curr) | ||||
| 		drawmenuh(); | ||||
| 	XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, mw, mh, 0, 0); | ||||
| 	commitdraw(&dc, win); | ||||
| } | ||||
| 
 | ||||
| void | ||||
|  | @ -189,16 +189,16 @@ drawmenuh(void) { | |||
| 
 | ||||
| 	dc.x += cmdw; | ||||
| 	dc.w = spaceitem; | ||||
| 	drawtext(&dc, curr->left ? "<" : NULL, normcol, False); | ||||
| 	drawtext(&dc, curr->left ? "<" : NULL, normcol); | ||||
| 	dc.x += dc.w; | ||||
| 	for(i = curr; i != next; i = i->right) { | ||||
| 		dc.w = MIN(textw(&dc, i->text), mw / 3); | ||||
| 		drawtext(&dc, i->text, (sel == i) ? selcol : normcol, False); | ||||
| 		drawtext(&dc, i->text, (sel == i) ? selcol : normcol); | ||||
| 		dc.x += dc.w; | ||||
| 	} | ||||
| 	dc.w = spaceitem; | ||||
| 	dc.x = mw - dc.w; | ||||
| 	drawtext(&dc, next ? ">" : NULL, normcol, False); | ||||
| 	drawtext(&dc, next ? ">" : NULL, normcol); | ||||
| } | ||||
| 
 | ||||
| void | ||||
|  | @ -209,7 +209,7 @@ drawmenuv(void) { | |||
| 	dc.y = topbar ? dc.h : 0; | ||||
| 	dc.w = mw - dc.x; | ||||
| 	for(i = curr; i != next; i = i->right) { | ||||
| 		drawtext(&dc, i->text, (sel == i) ? selcol : normcol, False); | ||||
| 		drawtext(&dc, i->text, (sel == i) ? selcol : normcol); | ||||
| 		dc.y += dc.h; | ||||
| 	} | ||||
| 	if(!XGetWindowAttributes(dpy, win, &wa)) | ||||
|  | @ -224,11 +224,10 @@ grabkeyboard(void) { | |||
| 	for(len = 1000; len; len--) { | ||||
| 		if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) | ||||
| 		== GrabSuccess) | ||||
| 			break; | ||||
| 			return; | ||||
| 		usleep(1000); | ||||
| 	} | ||||
| 	if(!len) | ||||
| 		exit(EXIT_FAILURE); | ||||
| 	exit(EXIT_FAILURE); | ||||
| } | ||||
| 
 | ||||
| void | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue