diff options
| author | arg@10ksloc.org <unknown> | 2006-07-20 12:18:06 +0200 | 
|---|---|---|
| committer | arg@10ksloc.org <unknown> | 2006-07-20 12:18:06 +0200 | 
| commit | dc5d967ee61046f899b3b49daeb9268c8161844a (patch) | |
| tree | 012a500412dc2c3a427a658d0f257c39de8351fb | |
| parent | fe3756c8e17f64d9b2aba93db28cb780f303f606 (diff) | |
| download | dwm-dc5d967ee61046f899b3b49daeb9268c8161844a.tar.gz | |
cleaned up code
| -rw-r--r-- | client.c | 16 | ||||
| -rw-r--r-- | config.mk | 2 | ||||
| -rw-r--r-- | draw.c | 6 | ||||
| -rw-r--r-- | dwm.1 | 2 | ||||
| -rw-r--r-- | event.c | 82 | ||||
| -rw-r--r-- | main.c | 43 | ||||
| -rw-r--r-- | tag.c | 9 | ||||
| -rw-r--r-- | util.c | 3 | 
8 files changed, 78 insertions, 85 deletions
| @@ -97,6 +97,7 @@ Client *  getclient(Window w)  {  	Client *c; +  	for(c = clients; c; c = c->next)  		if(c->win == w)  			return c; @@ -107,6 +108,7 @@ Client *  getctitle(Window w)  {  	Client *c; +  	for(c = clients; c; c = c->next)  		if(c->title == w)  			return c; @@ -198,8 +200,8 @@ manage(Window w, XWindowAttributes *wa)  {  	int diff;  	Client *c; -	XSetWindowAttributes twa;  	Window trans; +	XSetWindowAttributes twa;  	c = emallocz(sizeof(Client));  	c->win = w; @@ -278,6 +280,7 @@ void  pop(Client *c)  {  	Client **l; +  	for(l = &clients; *l && *l != c; l = &(*l)->next);  	*l = c->next; @@ -289,9 +292,9 @@ pop(Client *c)  void  resize(Client *c, Bool inc, Corner sticky)  { -	XConfigureEvent e; -	int right = c->x + c->w;  	int bottom = c->y + c->h; +	int right = c->x + c->w; +	XConfigureEvent e;  	if(inc) {  		if(c->incw) @@ -337,8 +340,9 @@ resize(Client *c, Bool inc, Corner sticky)  void  setsize(Client *c)  { -	XSizeHints size;  	long msize; +	XSizeHints size; +  	if(!XGetWMNormalHints(dpy, c->win, &size, &msize) || !size.flags)  		size.flags = PSize;  	c->flags = size.flags; @@ -375,9 +379,9 @@ setsize(Client *c)  void  settitle(Client *c)  { -	XTextProperty name; -	int n;  	char **list = NULL; +	int n; +	XTextProperty name;  	name.nitems = 0;  	c->name[0] = 0; @@ -7,7 +7,7 @@ MANPREFIX = ${PREFIX}/share/man  X11INC = /usr/X11R6/include  X11LIB = /usr/X11R6/lib -VERSION = 0.4 +VERSION = 0.5  # includes and libs  LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11 @@ -14,6 +14,7 @@ static void  drawborder(void)  {  	XPoint points[5]; +  	XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);  	XSetForeground(dpy, dc.gc, dc.border);  	points[0].x = dc.x; @@ -33,6 +34,7 @@ static unsigned int  textnw(char *text, unsigned int len)  {  	XRectangle r; +  	if(dc.font.set) {  		XmbTextExtents(dc.font.set, text, len, NULL, &r);  		return r.width; @@ -44,8 +46,8 @@ static void  drawtext(const char *text, Bool invert, Bool border)  {  	int x, y, w, h; -	unsigned int len;  	static char buf[256]; +	unsigned int len;  	XGCValues gcv;  	XRectangle r = { dc.x, dc.y, dc.w, dc.h }; @@ -170,8 +172,8 @@ drawtitle(Client *c)  unsigned long  getcolor(const char *colstr)  { -	XColor color;  	Colormap cmap = DefaultColormap(dpy, screen); +	XColor color;  	XAllocNamedColor(dpy, cmap, colstr, &color, &color);  	return color.pixel; @@ -1,4 +1,4 @@ -.TH DWM 1 dwm-0.4 +.TH DWM 1 dwm-0.5  .SH NAME  dwm \- dynamic window manager  .SH SYNOPSIS @@ -20,50 +20,44 @@ typedef struct {  	Arg arg;  } Key; -/*  const char *browse[] = { "firefox", NULL };  const char *gimp[] = { "gimp", NULL }; -*/ -const char *term[] = { "xterm", NULL }; -/* +const char *term[] = {   	"urxvtc", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",  	"-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL  }; -coonst char *xlock[] = { "xlock", NULL }; -*/ +const char *xlock[] = { "xlock", NULL };  static Key key[] = { -	/* modifier				key			function	arguments */ -	{ ControlMask,			XK_0,		appendtag,	{ .i = Tscratch } },  -	{ ControlMask,			XK_1,		appendtag,	{ .i = Tdev } },  -	{ ControlMask,			XK_2,		appendtag,	{ .i = Twww } },  -	{ ControlMask,			XK_3,		appendtag,	{ .i = Twork } },  -	{ MODKEY,				XK_0,		view,		{ .i = Tscratch } },  -	{ MODKEY,				XK_1,		view,		{ .i = Tdev } },  -	{ MODKEY,				XK_2,		view,		{ .i = Twww } },  -	{ MODKEY,				XK_3,		view,		{ .i = Twork } },  -	{ MODKEY,				XK_j,		focusnext,		{ 0 } },  -	{ MODKEY,				XK_k,		focusprev,		{ 0 } }, -	{ MODKEY,				XK_m,		maximize,		{ 0 } },  -	{ MODKEY,				XK_space,	dotile,		{ 0 } },  -	{ MODKEY,				XK_Return,	zoom,		{ 0 } }, +	/* modifier		key		function	arguments */ +	{ ControlMask,		XK_0,		appendtag,	{ .i = Tscratch } },  +	{ ControlMask,		XK_1,		appendtag,	{ .i = Tdev } },  +	{ ControlMask,		XK_2,		appendtag,	{ .i = Twww } },  +	{ ControlMask,		XK_3,		appendtag,	{ .i = Twork } },  +	{ MODKEY,		XK_0,		view,		{ .i = Tscratch } },  +	{ MODKEY,		XK_1,		view,		{ .i = Tdev } },  +	{ MODKEY,		XK_2,		view,		{ .i = Twww } },  +	{ MODKEY,		XK_3,		view,		{ .i = Twork } },  +	{ MODKEY,		XK_j,		focusnext,	{ 0 } },  +	{ MODKEY,		XK_k,		focusprev,	{ 0 } }, +	{ MODKEY,		XK_m,		maximize,	{ 0 } },  +	{ MODKEY,		XK_space,	dotile,		{ 0 } },  +	{ MODKEY,		XK_Return,	zoom,		{ 0 } },  	{ ControlMask|ShiftMask,XK_0,		heretag,	{ .i = Tscratch } },   	{ ControlMask|ShiftMask,XK_1,		heretag,	{ .i = Tdev } },   	{ ControlMask|ShiftMask,XK_2,		heretag,	{ .i = Twww } },   	{ ControlMask|ShiftMask,XK_3,		heretag,	{ .i = Twork } },  -	{ MODKEY|ShiftMask,		XK_0,		replacetag,		{ .i = Tscratch } },  -	{ MODKEY|ShiftMask,		XK_1,		replacetag,		{ .i = Tdev } },  -	{ MODKEY|ShiftMask,		XK_2,		replacetag,		{ .i = Twww } },  -	{ MODKEY|ShiftMask,		XK_3,		replacetag,		{ .i = Twork } },  -	{ MODKEY|ShiftMask,		XK_c,		killclient,		{ 0 } },  -	/* -	{ MODKEY|ShiftMask,		XK_g,		spawn,		{ .argv = gimp } }, -	{ MODKEY|ShiftMask,		XK_l,		spawn,		{ .argv = xlock } }, -	*/ -	{ MODKEY|ShiftMask,		XK_q,		quit,		{ 0 } }, -	{ MODKEY|ShiftMask,		XK_space,	dofloat,	{ 0 } },  -	/*{ MODKEY|ShiftMask,		XK_w,		spawn,		{ .argv = browse } },*/ -	{ MODKEY|ShiftMask,		XK_Return,	spawn,		{ .argv = term } }, +	{ MODKEY|ShiftMask,	XK_0,		replacetag,	{ .i = Tscratch } },  +	{ MODKEY|ShiftMask,	XK_1,		replacetag,	{ .i = Tdev } },  +	{ MODKEY|ShiftMask,	XK_2,		replacetag,	{ .i = Twww } },  +	{ MODKEY|ShiftMask,	XK_3,		replacetag,	{ .i = Twork } },  +	{ MODKEY|ShiftMask,	XK_c,		killclient,	{ 0 } },  +	{ MODKEY|ShiftMask,	XK_g,		spawn,		{ .argv = gimp } }, +	{ MODKEY|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } }, +	{ MODKEY|ShiftMask,	XK_q,		quit,		{ 0 } }, +	{ MODKEY|ShiftMask,	XK_space,	dofloat,	{ 0 } },  +	{ MODKEY|ShiftMask,	XK_w,		spawn,		{ .argv = browse } }, +	{ MODKEY|ShiftMask,	XK_Return,	spawn,		{ .argv = term } },  };  /* static */ @@ -71,15 +65,15 @@ static Key key[] = {  static void  movemouse(Client *c)  { -	XEvent ev;  	int x1, y1, ocx, ocy, di;  	unsigned int dui;  	Window dummy; +	XEvent ev;  	ocx = c->x;  	ocy = c->y;  	if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync, -				None, cursor[CurMove], CurrentTime) != GrabSuccess) +			None, cursor[CurMove], CurrentTime) != GrabSuccess)  		return;  	XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui);  	for(;;) { @@ -105,9 +99,9 @@ movemouse(Client *c)  static void  resizemouse(Client *c)  { -	XEvent ev;  	int ocx, ocy;  	Corner sticky; +	XEvent ev;  	ocx = c->x;  	ocy = c->y; @@ -146,8 +140,8 @@ buttonpress(XEvent *e)  {  	int x;  	Arg a; -	XButtonPressedEvent *ev = &e->xbutton;  	Client *c; +	XButtonPressedEvent *ev = &e->xbutton;  	if(barwin == ev->window) {  		switch(ev->button) { @@ -201,9 +195,9 @@ buttonpress(XEvent *e)  static void  configurerequest(XEvent *e)  { +	Client *c;  	XConfigureRequestEvent *ev = &e->xconfigurerequest;  	XWindowChanges wc; -	Client *c;  	ev->value_mask &= ~CWSibling;  	if((c = getclient(ev->window))) { @@ -248,8 +242,8 @@ destroynotify(XEvent *e)  static void  enternotify(XEvent *e)  { -	XCrossingEvent *ev = &e->xcrossing;  	Client *c; +	XCrossingEvent *ev = &e->xcrossing;  	if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)  		return; @@ -263,8 +257,8 @@ enternotify(XEvent *e)  static void  expose(XEvent *e)  { -	XExposeEvent *ev = &e->xexpose;  	Client *c; +	XExposeEvent *ev = &e->xexpose;  	if(ev->count == 0) {  		if(barwin == ev->window) @@ -277,10 +271,10 @@ expose(XEvent *e)  static void  keypress(XEvent *e)  { -	XKeyEvent *ev = &e->xkey;  	static unsigned int len = key ? sizeof(key) / sizeof(key[0]) : 0;  	unsigned int i;  	KeySym keysym; +	XKeyEvent *ev = &e->xkey;  	keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);  	for(i = 0; i < len; i++) @@ -303,8 +297,8 @@ leavenotify(XEvent *e)  static void  maprequest(XEvent *e)  { -	XMapRequestEvent *ev = &e->xmaprequest;  	static XWindowAttributes wa; +	XMapRequestEvent *ev = &e->xmaprequest;  	if(!XGetWindowAttributes(dpy, ev->window, &wa))  		return; @@ -322,9 +316,9 @@ maprequest(XEvent *e)  static void  propertynotify(XEvent *e)  { -	XPropertyEvent *ev = &e->xproperty; -	Window trans;  	Client *c; +	Window trans; +	XPropertyEvent *ev = &e->xproperty;  	if(ev->state == PropertyDelete)  		return; /* ignore */ @@ -17,8 +17,8 @@  /* static */ -static Bool otherwm;  static int (*xerrorxlib)(Display *, XErrorEvent *); +static Bool otherwm;  static void  cleanup() @@ -34,9 +34,8 @@ static void  scan()  {  	unsigned int i, num; -	Window *wins; +	Window *wins, d1, d2;  	XWindowAttributes wa; -	Window d1, d2;  	if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) {  		for(i = 0; i < num; i++) { @@ -55,10 +54,9 @@ scan()  static int  win_property(Window w, Atom a, Atom t, long l, unsigned char **prop)  { -	Atom real; -	int format; +	int status, format;  	unsigned long res, extra; -	int status; +	Atom real;  	status = XGetWindowProperty(dpy, w, a, 0L, l, False, t, &real, &format,  			&res, &extra, prop); @@ -101,10 +99,10 @@ Window root, barwin;  int  getproto(Window w)  { -	unsigned char *protocols; -	long res;  	int protos = 0;  	int i; +	long res; +	unsigned char *protocols;  	res = win_property(w, wmatom[WMProtocols], XA_ATOM, 20L, &protocols);  	if(res <= 0) { @@ -148,21 +146,15 @@ int  xerror(Display *dpy, XErrorEvent *ee)  {  	if(ee->error_code == BadWindow -			|| (ee->request_code == X_SetInputFocus -				&& ee->error_code == BadMatch) -			|| (ee->request_code == X_PolyText8 -				&& ee->error_code == BadDrawable) -			|| (ee->request_code == X_PolyFillRectangle -				&& ee->error_code == BadDrawable) -			|| (ee->request_code == X_PolySegment -				&& ee->error_code == BadDrawable) -			|| (ee->request_code == X_ConfigureWindow -				&& ee->error_code == BadMatch) -			|| (ee->request_code == X_GrabKey -				&& ee->error_code == BadAccess)) +	|| (ee->request_code == X_SetInputFocus && ee->error_code == BadMatch) +	|| (ee->request_code == X_PolyText8 && ee->error_code == BadDrawable) +	|| (ee->request_code == X_PolyFillRectangle && ee->error_code == BadDrawable) +	|| (ee->request_code == X_PolySegment && ee->error_code == BadDrawable) +	|| (ee->request_code == X_ConfigureWindow && ee->error_code == BadMatch) +	|| (ee->request_code == X_GrabKey && ee->error_code == BadAccess))  		return 0;  	fprintf(stderr, "dwm: fatal error: request code=%d, error code=%d\n", -			ee->request_code, ee->error_code); +		ee->request_code, ee->error_code);  	return xerrorxlib(dpy, ee); /* may call exit() */  } @@ -170,12 +162,12 @@ int  main(int argc, char *argv[])  {  	int i, n; -	fd_set rd; -	XSetWindowAttributes wa;  	unsigned int mask; +	fd_set rd;  	Bool readstdin = True;  	Window w;  	XEvent ev; +	XSetWindowAttributes wa;  	for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {  		switch (argv[i][1]) { @@ -254,14 +246,11 @@ main(int argc, char *argv[])  	issel = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask); -	wa.event_mask = SubstructureRedirectMask | EnterWindowMask \ -					| LeaveWindowMask; +	wa.event_mask = SubstructureRedirectMask | EnterWindowMask | LeaveWindowMask;  	wa.cursor = cursor[CurNormal]; -  	XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa);  	strcpy(stext, "dwm-"VERSION); -  	scan();  	/* main event loop, reads status text from stdin as well */ @@ -20,9 +20,9 @@ typedef struct {  /* CUSTOMIZE */   static Rule rule[] = { -	/* class			instance	tags		isfloat */ -	{ "Firefox.*",	{ [Twww] = "www" },			False }, -	{ "Gimp.*",		{ 0 },						True}, +	/* class:instance	tags				isfloat */ +	{ "Firefox.*",		{ [Twww] = "www" },		False }, +	{ "Gimp.*",		{ 0 },				True},  };  /* extern */ @@ -71,8 +71,8 @@ dofloat(Arg *arg)  void  dotile(Arg *arg)  { -	Client *c;  	int n, i, w, h; +	Client *c;  	w = sw - mw;  	arrange = dotile; @@ -161,6 +161,7 @@ void  replacetag(Arg *arg)  {  	int i; +  	if(!sel)  		return; @@ -26,6 +26,7 @@ void *  emallocz(unsigned int size)  {  	void *res = calloc(1, size); +  	if(!res)  		bad_malloc(size);  	return res; @@ -34,6 +35,7 @@ emallocz(unsigned int size)  void  eprint(const char *errstr, ...) {  	va_list ap; +  	va_start(ap, errstr);  	vfprintf(stderr, errstr, ap);  	va_end(ap); @@ -44,6 +46,7 @@ void  spawn(Arg *arg)  {  	char **argv = (char **)arg->argv; +  	if(!argv || !argv[0])  		return;  	if(fork() == 0) { | 
