cleanup
- unify multi-line expression alignment style. - unify multi-line function call alignment style. - simplify client moving on monitor count decrease. - clarify comment for focusin(). - remove old confusing comment about input focus fix in focusmon(). The explanation is already in the old commit message, so no need to keep it in the code. - remove old comment describing even older state of the code in focus(). - unify comment style. - break up some long lines. - fix some typos and grammar.
This commit is contained in:
		
				
					committed by
					
						 Anselm R Garbe
						Anselm R Garbe
					
				
			
			
				
	
			
			
			
						parent
						
							bb3bd6fec3
						
					
				
				
					commit
					2952b68db8
				
			
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							| @@ -16,7 +16,7 @@ MIT/X Consortium License | ||||
| © 2011 Christoph Lohmann <20h@r-36.net> | ||||
| © 2015-2016 Quentin Rameau <quinq@fifth.space> | ||||
| © 2015-2016 Eric Pruitt <eric.pruitt@gmail.com> | ||||
| © 2016 Markus Teich <markus.teich@stusta.mhn.de> | ||||
| © 2016-2017 Markus Teich <markus.teich@stusta.mhn.de> | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a | ||||
| copy of this software and associated documentation files (the "Software"), | ||||
|   | ||||
| @@ -15,7 +15,7 @@ static const char col_cyan[]        = "#005577"; | ||||
| static const char *colors[][3]      = { | ||||
| 	/*               fg         bg         border   */ | ||||
| 	[SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, | ||||
| 	[SchemeSel] =  { col_gray4, col_cyan,  col_cyan  }, | ||||
| 	[SchemeSel]  = { col_gray4, col_cyan,  col_cyan  }, | ||||
| }; | ||||
|  | ||||
| /* tagging */ | ||||
|   | ||||
							
								
								
									
										64
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								dwm.c
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ | ||||
|  * dynamic window manager is designed like any other X client as well. It is | ||||
|  * driven through handling X events. In contrast to other X clients, a window | ||||
|  * manager selects for SubstructureRedirectMask on the root window, to receive | ||||
|  * events about window (dis-)appearance.  Only one X connection at a time is | ||||
|  * events about window (dis-)appearance. Only one X connection at a time is | ||||
|  * allowed to select for this event mask. | ||||
|  * | ||||
|  * The event handlers of dwm are organized in an array which is accessed | ||||
| @@ -11,7 +11,7 @@ | ||||
|  * in O(1) time. | ||||
|  * | ||||
|  * Each child of the root window is called a client, except windows which have | ||||
|  * set the override_redirect flag.  Clients are organized in a linked client | ||||
|  * set the override_redirect flag. Clients are organized in a linked client | ||||
|  * list on each monitor, the focus history is remembered through a stack list | ||||
|  * on each monitor. Each client contains a bit array to indicate the tags of a | ||||
|  * client. | ||||
| @@ -517,7 +517,8 @@ clientmessage(XEvent *e) | ||||
| 	if (!c) | ||||
| 		return; | ||||
| 	if (cme->message_type == netatom[NetWMState]) { | ||||
| 		if (cme->data.l[1] == netatom[NetWMFullscreen] || cme->data.l[2] == netatom[NetWMFullscreen]) | ||||
| 		if (cme->data.l[1] == netatom[NetWMFullscreen] | ||||
| 		|| cme->data.l[2] == netatom[NetWMFullscreen]) | ||||
| 			setfullscreen(c, (cme->data.l[0] == 1 /* _NET_WM_STATE_ADD    */ | ||||
| 			              || (cme->data.l[0] == 2 /* _NET_WM_STATE_TOGGLE */ && !c->isfullscreen))); | ||||
| 	} else if (cme->message_type == netatom[NetActiveWindow]) { | ||||
| @@ -783,7 +784,6 @@ focus(Client *c) | ||||
| { | ||||
| 	if (!c || !ISVISIBLE(c)) | ||||
| 		for (c = selmon->stack; c && !ISVISIBLE(c); c = c->snext); | ||||
| 	/* was if (selmon->sel) */ | ||||
| 	if (selmon->sel && selmon->sel != c) | ||||
| 		unfocus(selmon->sel, 0); | ||||
| 	if (c) { | ||||
| @@ -804,7 +804,7 @@ focus(Client *c) | ||||
| 	drawbars(); | ||||
| } | ||||
|  | ||||
| /* there are some broken focus acquiring clients */ | ||||
| /* there are some broken focus acquiring clients needing extra handling */ | ||||
| void | ||||
| focusin(XEvent *e) | ||||
| { | ||||
| @@ -823,8 +823,7 @@ focusmon(const Arg *arg) | ||||
| 		return; | ||||
| 	if ((m = dirtomon(arg->i)) == selmon) | ||||
| 		return; | ||||
| 	unfocus(selmon->sel, 0); /* s/1/0/ fixes input focus issues | ||||
| 					in gedit and anjuta */ | ||||
| 	unfocus(selmon->sel, 0); | ||||
| 	selmon = m; | ||||
| 	focus(NULL); | ||||
| } | ||||
| @@ -961,7 +960,7 @@ grabkeys(void) | ||||
| 			if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) | ||||
| 				for (j = 0; j < LENGTH(modifiers); j++) | ||||
| 					XGrabKey(dpy, code, keys[i].mod | modifiers[j], root, | ||||
| 						 True, GrabModeAsync, GrabModeAsync); | ||||
| 					         True, GrabModeAsync, GrabModeAsync); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @@ -1151,7 +1150,7 @@ movemouse(const Arg *arg) | ||||
| 	ocx = c->x; | ||||
| 	ocy = c->y; | ||||
| 	if (XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, | ||||
| 	None, cursor[CurMove]->cursor, CurrentTime) != GrabSuccess) | ||||
| 	    None, cursor[CurMove]->cursor, CurrentTime) != GrabSuccess) | ||||
| 		return; | ||||
| 	if (!getrootptr(&x, &y)) | ||||
| 		return; | ||||
| @@ -1434,7 +1433,7 @@ setclientstate(Client *c, long state) | ||||
| 	long data[] = { state, None }; | ||||
|  | ||||
| 	XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32, | ||||
| 			PropModeReplace, (unsigned char *)data, 2); | ||||
| 	                PropModeReplace, (unsigned char *)data, 2); | ||||
| } | ||||
|  | ||||
| int | ||||
| @@ -1516,7 +1515,7 @@ setlayout(const Arg *arg) | ||||
| 		drawbar(selmon); | ||||
| } | ||||
|  | ||||
| /* arg > 1.0 will set mfact absolutly */ | ||||
| /* arg > 1.0 will set mfact absolutely */ | ||||
| void | ||||
| setmfact(const Arg *arg) | ||||
| { | ||||
| @@ -1581,19 +1580,20 @@ setup(void) | ||||
| 	/* supporting window for NetWMCheck */ | ||||
| 	wmcheckwin = XCreateSimpleWindow(dpy, root, 0, 0, 1, 1, 0, 0, 0); | ||||
| 	XChangeProperty(dpy, wmcheckwin, netatom[NetWMCheck], XA_WINDOW, 32, | ||||
| 		PropModeReplace, (unsigned char *) &wmcheckwin, 1); | ||||
| 	                PropModeReplace, (unsigned char *) &wmcheckwin, 1); | ||||
| 	XChangeProperty(dpy, wmcheckwin, netatom[NetWMName], utf8string, 8, | ||||
| 		PropModeReplace, (unsigned char *) "dwm", 4); | ||||
| 	                PropModeReplace, (unsigned char *) "dwm", 4); | ||||
| 	XChangeProperty(dpy, root, netatom[NetWMCheck], XA_WINDOW, 32, | ||||
| 		PropModeReplace, (unsigned char *) &wmcheckwin, 1); | ||||
| 	                PropModeReplace, (unsigned char *) &wmcheckwin, 1); | ||||
| 	/* EWMH support per view */ | ||||
| 	XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32, | ||||
| 			PropModeReplace, (unsigned char *) netatom, NetLast); | ||||
| 	                PropModeReplace, (unsigned char *) netatom, NetLast); | ||||
| 	XDeleteProperty(dpy, root, netatom[NetClientList]); | ||||
| 	/* select for events */ | ||||
| 	/* select events */ | ||||
| 	wa.cursor = cursor[CurNormal]->cursor; | ||||
| 	wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask|ButtonPressMask|PointerMotionMask | ||||
| 	                |EnterWindowMask|LeaveWindowMask|StructureNotifyMask|PropertyChangeMask; | ||||
| 	wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask | ||||
| 	                |ButtonPressMask|PointerMotionMask|EnterWindowMask | ||||
| 	                |LeaveWindowMask|StructureNotifyMask|PropertyChangeMask; | ||||
| 	XChangeWindowAttributes(dpy, root, CWEventMask|CWCursor, &wa); | ||||
| 	XSelectInput(dpy, root, wa.event_mask); | ||||
| 	grabkeys(); | ||||
| @@ -1769,12 +1769,11 @@ unmanage(Client *c, int destroyed) | ||||
| 	Monitor *m = c->mon; | ||||
| 	XWindowChanges wc; | ||||
|  | ||||
| 	/* The server grab construct avoids race conditions. */ | ||||
| 	detach(c); | ||||
| 	detachstack(c); | ||||
| 	if (!destroyed) { | ||||
| 		wc.border_width = c->oldbw; | ||||
| 		XGrabServer(dpy); | ||||
| 		XGrabServer(dpy); /* avoid race conditions */ | ||||
| 		XSetErrorHandler(xerrordummy); | ||||
| 		XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */ | ||||
| 		XUngrabButton(dpy, AnyButton, AnyModifier, c->win); | ||||
| @@ -1871,8 +1870,8 @@ updategeom(void) | ||||
| 				memcpy(&unique[j++], &info[i], sizeof(XineramaScreenInfo)); | ||||
| 		XFree(info); | ||||
| 		nn = j; | ||||
| 		if (n <= nn) { | ||||
| 			for (i = 0; i < (nn - n); i++) { /* new monitors available */ | ||||
| 		if (n <= nn) { /* new monitors available */ | ||||
| 			for (i = 0; i < (nn - n); i++) { | ||||
| 				for (m = mons; m && m->next; m = m->next); | ||||
| 				if (m) | ||||
| 					m->next = createmon(); | ||||
| @@ -1881,8 +1880,8 @@ updategeom(void) | ||||
| 			} | ||||
| 			for (i = 0, m = mons; i < nn && m; m = m->next, i++) | ||||
| 				if (i >= n | ||||
| 				|| (unique[i].x_org != m->mx || unique[i].y_org != m->my | ||||
| 				    || unique[i].width != m->mw || unique[i].height != m->mh)) | ||||
| 				|| unique[i].x_org != m->mx || unique[i].y_org != m->my | ||||
| 				|| unique[i].width != m->mw || unique[i].height != m->mh) | ||||
| 				{ | ||||
| 					dirty = 1; | ||||
| 					m->num = i; | ||||
| @@ -1892,13 +1891,11 @@ updategeom(void) | ||||
| 					m->mh = m->wh = unique[i].height; | ||||
| 					updatebarpos(m); | ||||
| 				} | ||||
| 		} else { | ||||
| 			/* less monitors available nn < n */ | ||||
| 		} else { /* less monitors available nn < n */ | ||||
| 			for (i = nn; i < n; i++) { | ||||
| 				for (m = mons; m && m->next; m = m->next); | ||||
| 				while (m->clients) { | ||||
| 				while ((c = m->clients)) { | ||||
| 					dirty = 1; | ||||
| 					c = m->clients; | ||||
| 					m->clients = c->next; | ||||
| 					detachstack(c); | ||||
| 					c->mon = mons; | ||||
| @@ -1913,8 +1910,7 @@ updategeom(void) | ||||
| 		free(unique); | ||||
| 	} else | ||||
| #endif /* XINERAMA */ | ||||
| 	/* default monitor setup */ | ||||
| 	{ | ||||
| 	{ /* default monitor setup */ | ||||
| 		if (!mons) | ||||
| 			mons = createmon(); | ||||
| 		if (mons->mw != sw || mons->mh != sh) { | ||||
| @@ -1988,7 +1984,7 @@ updatesizehints(Client *c) | ||||
| 	} else | ||||
| 		c->maxa = c->mina = 0.0; | ||||
| 	c->isfixed = (c->maxw && c->minw && c->maxh && c->minh | ||||
| 	             && c->maxw == c->minw && c->maxh == c->minh); | ||||
| 	              && c->maxw == c->minw && c->maxh == c->minh); | ||||
| } | ||||
|  | ||||
| void | ||||
| @@ -2082,8 +2078,8 @@ wintomon(Window w) | ||||
| } | ||||
|  | ||||
| /* There's no way to check accesses to destroyed windows, thus those cases are | ||||
|  * ignored (especially on UnmapNotify's).  Other types of errors call Xlibs | ||||
|  * default error handler, which may call exit.  */ | ||||
|  * ignored (especially on UnmapNotify's). Other types of errors call Xlibs | ||||
|  * default error handler, which may call exit. */ | ||||
| int | ||||
| xerror(Display *dpy, XErrorEvent *ee) | ||||
| { | ||||
| @@ -2098,7 +2094,7 @@ xerror(Display *dpy, XErrorEvent *ee) | ||||
| 	|| (ee->request_code == X_CopyArea && ee->error_code == BadDrawable)) | ||||
| 		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 */ | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user