applied Stefan Tibus' sun patch, added -bottom option to dmenu which makes it appear in the bottom (for wmii compliance), slightly modified version than the patch proposed by Stefan Tibus
This commit is contained in:
		@@ -20,6 +20,11 @@ LDFLAGS = ${LIBS}
 | 
				
			|||||||
#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
 | 
					#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
 | 
				
			||||||
#LDFLAGS = -g ${LIBS}
 | 
					#LDFLAGS = -g ${LIBS}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Solaris
 | 
				
			||||||
 | 
					#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
 | 
				
			||||||
 | 
					#LDFLAGS = ${LIBS}
 | 
				
			||||||
 | 
					#CFLAGS += -xtarget=ultra
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# compiler and linker
 | 
					# compiler and linker
 | 
				
			||||||
CC = cc
 | 
					CC = cc
 | 
				
			||||||
LD = ${CC}
 | 
					LD = ${CC}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								dmenu.1
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								dmenu.1
									
									
									
									
									
								
							@@ -3,6 +3,7 @@
 | 
				
			|||||||
dmenu \- dynamic menu
 | 
					dmenu \- dynamic menu
 | 
				
			||||||
.SH SYNOPSIS
 | 
					.SH SYNOPSIS
 | 
				
			||||||
.B dmenu
 | 
					.B dmenu
 | 
				
			||||||
 | 
					.RB [ \-bottom ]
 | 
				
			||||||
.RB [ \-font " <name>"]
 | 
					.RB [ \-font " <name>"]
 | 
				
			||||||
.RB [ \-normbg " <color>"]
 | 
					.RB [ \-normbg " <color>"]
 | 
				
			||||||
.RB [ \-normfg " <color>"]
 | 
					.RB [ \-normfg " <color>"]
 | 
				
			||||||
@@ -19,6 +20,9 @@ It manages huge amounts (up to 10.000 and more) of user defined menu items
 | 
				
			|||||||
efficiently.
 | 
					efficiently.
 | 
				
			||||||
.SS Options
 | 
					.SS Options
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
 | 
					.B \-bottom
 | 
				
			||||||
 | 
					makes dmenu appear at the screen bottom (by default it appears at the screen top).
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
.B \-font <name>
 | 
					.B \-font <name>
 | 
				
			||||||
defines the font.
 | 
					defines the font.
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								main.c
									
									
									
									
									
								
							@@ -330,6 +330,7 @@ DC dc = {0};
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
int
 | 
					int
 | 
				
			||||||
main(int argc, char *argv[]) {
 | 
					main(int argc, char *argv[]) {
 | 
				
			||||||
 | 
						Bool bottom = False;
 | 
				
			||||||
	char *font = FONT;
 | 
						char *font = FONT;
 | 
				
			||||||
	char *maxname;
 | 
						char *maxname;
 | 
				
			||||||
	char *normbg = NORMBGCOLOR;
 | 
						char *normbg = NORMBGCOLOR;
 | 
				
			||||||
@@ -347,7 +348,10 @@ main(int argc, char *argv[]) {
 | 
				
			|||||||
	timeout.tv_sec = 3;
 | 
						timeout.tv_sec = 3;
 | 
				
			||||||
	/* command line args */
 | 
						/* command line args */
 | 
				
			||||||
	for(i = 1; i < argc; i++)
 | 
						for(i = 1; i < argc; i++)
 | 
				
			||||||
		if(!strncmp(argv[i], "-font", 6)) {
 | 
							if(!strncmp(argv[i], "-bottom", 8)) {
 | 
				
			||||||
 | 
								bottom = True;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else if(!strncmp(argv[i], "-font", 6)) {
 | 
				
			||||||
			if(++i < argc) font = argv[i];
 | 
								if(++i < argc) font = argv[i];
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else if(!strncmp(argv[i], "-normbg", 8)) {
 | 
							else if(!strncmp(argv[i], "-normbg", 8)) {
 | 
				
			||||||
@@ -373,7 +377,8 @@ main(int argc, char *argv[]) {
 | 
				
			|||||||
			exit(EXIT_SUCCESS);
 | 
								exit(EXIT_SUCCESS);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			eprint("usage: dmenu [-font <name>] [-{norm,sel}{bg,fg} <color>] [-p <prompt>] [-t <seconds>] [-v]\n", stdout);
 | 
								eprint("usage: dmenu [-bottom] [-font <name>] [-{norm,sel}{bg,fg} <color>]\n"
 | 
				
			||||||
 | 
									"             [-p <prompt>] [-t <seconds>] [-v]\n", stdout);
 | 
				
			||||||
	setlocale(LC_CTYPE, "");
 | 
						setlocale(LC_CTYPE, "");
 | 
				
			||||||
	dpy = XOpenDisplay(0);
 | 
						dpy = XOpenDisplay(0);
 | 
				
			||||||
	if(!dpy)
 | 
						if(!dpy)
 | 
				
			||||||
@@ -406,6 +411,11 @@ main(int argc, char *argv[]) {
 | 
				
			|||||||
	wa.event_mask = ExposureMask | ButtonPressMask | KeyPressMask;
 | 
						wa.event_mask = ExposureMask | ButtonPressMask | KeyPressMask;
 | 
				
			||||||
	mx = my = 0;
 | 
						mx = my = 0;
 | 
				
			||||||
	mw = DisplayWidth(dpy, screen);
 | 
						mw = DisplayWidth(dpy, screen);
 | 
				
			||||||
 | 
						if(bottom) {
 | 
				
			||||||
 | 
							mh = dc.font.ascent + dc.font.descent + 3; // match wmii
 | 
				
			||||||
 | 
							my = DisplayHeight(dpy, screen) - mh;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
		mh = dc.font.height + 2;
 | 
							mh = dc.font.height + 2;
 | 
				
			||||||
	win = XCreateWindow(dpy, root, mx, my, mw, mh, 0,
 | 
						win = XCreateWindow(dpy, root, mx, my, mw, mh, 0,
 | 
				
			||||||
			DefaultDepth(dpy, screen), CopyFromParent,
 | 
								DefaultDepth(dpy, screen), CopyFromParent,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user