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}\"
 | 
			
		||||
#LDFLAGS = -g ${LIBS}
 | 
			
		||||
 | 
			
		||||
# Solaris
 | 
			
		||||
#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
 | 
			
		||||
#LDFLAGS = ${LIBS}
 | 
			
		||||
#CFLAGS += -xtarget=ultra
 | 
			
		||||
 | 
			
		||||
# compiler and linker
 | 
			
		||||
CC = cc
 | 
			
		||||
LD = ${CC}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								dmenu.1
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								dmenu.1
									
									
									
									
									
								
							@ -3,6 +3,7 @@
 | 
			
		||||
dmenu \- dynamic menu
 | 
			
		||||
.SH SYNOPSIS
 | 
			
		||||
.B dmenu
 | 
			
		||||
.RB [ \-bottom ]
 | 
			
		||||
.RB [ \-font " <name>"]
 | 
			
		||||
.RB [ \-normbg " <color>"]
 | 
			
		||||
.RB [ \-normfg " <color>"]
 | 
			
		||||
@ -19,6 +20,9 @@ It manages huge amounts (up to 10.000 and more) of user defined menu items
 | 
			
		||||
efficiently.
 | 
			
		||||
.SS Options
 | 
			
		||||
.TP
 | 
			
		||||
.B \-bottom
 | 
			
		||||
makes dmenu appear at the screen bottom (by default it appears at the screen top).
 | 
			
		||||
.TP
 | 
			
		||||
.B \-font <name>
 | 
			
		||||
defines the font.
 | 
			
		||||
.TP
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								main.c
									
									
									
									
									
								
							@ -330,6 +330,7 @@ DC dc = {0};
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main(int argc, char *argv[]) {
 | 
			
		||||
	Bool bottom = False;
 | 
			
		||||
	char *font = FONT;
 | 
			
		||||
	char *maxname;
 | 
			
		||||
	char *normbg = NORMBGCOLOR;
 | 
			
		||||
@ -347,7 +348,10 @@ main(int argc, char *argv[]) {
 | 
			
		||||
	timeout.tv_sec = 3;
 | 
			
		||||
	/* command line args */
 | 
			
		||||
	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];
 | 
			
		||||
		}
 | 
			
		||||
		else if(!strncmp(argv[i], "-normbg", 8)) {
 | 
			
		||||
@ -373,7 +377,8 @@ main(int argc, char *argv[]) {
 | 
			
		||||
			exit(EXIT_SUCCESS);
 | 
			
		||||
		}
 | 
			
		||||
		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, "");
 | 
			
		||||
	dpy = XOpenDisplay(0);
 | 
			
		||||
	if(!dpy)
 | 
			
		||||
@ -406,7 +411,12 @@ main(int argc, char *argv[]) {
 | 
			
		||||
	wa.event_mask = ExposureMask | ButtonPressMask | KeyPressMask;
 | 
			
		||||
	mx = my = 0;
 | 
			
		||||
	mw = DisplayWidth(dpy, screen);
 | 
			
		||||
	mh = dc.font.height + 2;
 | 
			
		||||
	if(bottom) {
 | 
			
		||||
		mh = dc.font.ascent + dc.font.descent + 3; // match wmii
 | 
			
		||||
		my = DisplayHeight(dpy, screen) - mh;
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
		mh = dc.font.height + 2;
 | 
			
		||||
	win = XCreateWindow(dpy, root, mx, my, mw, mh, 0,
 | 
			
		||||
			DefaultDepth(dpy, screen), CopyFromParent,
 | 
			
		||||
			DefaultVisual(dpy, screen),
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user