| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -60,12 +60,6 @@ xerrordummy(Display *dsply, XErrorEvent *ee) { | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																/* extern functions */ | 
																 | 
																 | 
																/* extern functions */ | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																ban(Client *c) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	XMoveWindow(dpy, c->twin, c->tx + 2 * sw, c->ty); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																configure(Client *c) { | 
																 | 
																 | 
																configure(Client *c) { | 
															
														
														
													
														
															
																 | 
																 | 
																	XEvent synev; | 
																 | 
																 | 
																	XEvent synev; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -121,16 +115,6 @@ getclient(Window w) { | 
															
														
														
													
														
															
																 | 
																 | 
																	return NULL; | 
																 | 
																 | 
																	return NULL; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																Client * | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																getctitle(Window w) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	Client *c; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	for(c = clients; c; c = c->next) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		if(c->twin == w) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																			return c; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	return NULL; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																killclient(Arg *arg) { | 
																 | 
																 | 
																killclient(Arg *arg) { | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!sel) | 
																 | 
																 | 
																	if(!sel) | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -145,17 +129,15 @@ void | 
															
														
														
													
														
															
																 | 
																 | 
																manage(Window w, XWindowAttributes *wa) { | 
																 | 
																 | 
																manage(Window w, XWindowAttributes *wa) { | 
															
														
														
													
														
															
																 | 
																 | 
																	Client *c; | 
																 | 
																 | 
																	Client *c; | 
															
														
														
													
														
															
																 | 
																 | 
																	Window trans; | 
																 | 
																 | 
																	Window trans; | 
															
														
														
													
														
															
																 | 
																 | 
																	XSetWindowAttributes twa; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	c = emallocz(sizeof(Client)); | 
																 | 
																 | 
																	c = emallocz(sizeof(Client)); | 
															
														
														
													
														
															
																 | 
																 | 
																	c->tags = emallocz(ntags * sizeof(Bool)); | 
																 | 
																 | 
																	c->tags = emallocz(ntags * sizeof(Bool)); | 
															
														
														
													
														
															
																 | 
																 | 
																	c->win = w; | 
																 | 
																 | 
																	c->win = w; | 
															
														
														
													
														
															
																 | 
																 | 
																	c->border = 0; | 
																 | 
																 | 
																	c->border = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																	c->x = c->tx = wa->x; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	c->y = c->ty = wa->y; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	c->w = c->tw = wa->width; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	c->x = wa->x; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	c->y = wa->y; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	c->w = wa->width; | 
															
														
														
													
														
															
																 | 
																 | 
																	c->h = wa->height; | 
																 | 
																 | 
																	c->h = wa->height; | 
															
														
														
													
														
															
																 | 
																 | 
																	c->th = bh; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	updatesizehints(c); | 
																 | 
																 | 
																	updatesizehints(c); | 
															
														
														
													
														
															
																 | 
																 | 
																	if(c->x + c->w + 2 * BORDERPX > sw) | 
																 | 
																 | 
																	if(c->x + c->w + 2 * BORDERPX > sw) | 
															
														
														
													
														
															
																 | 
																 | 
																		c->x = sw - c->w - 2 * BORDERPX; | 
																 | 
																 | 
																		c->x = sw - c->w - 2 * BORDERPX; | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -169,27 +151,18 @@ manage(Window w, XWindowAttributes *wa) { | 
															
														
														
													
														
															
																 | 
																 | 
																	XSelectInput(dpy, c->win, | 
																 | 
																 | 
																	XSelectInput(dpy, c->win, | 
															
														
														
													
														
															
																 | 
																 | 
																		StructureNotifyMask | PropertyChangeMask | EnterWindowMask); | 
																 | 
																 | 
																		StructureNotifyMask | PropertyChangeMask | EnterWindowMask); | 
															
														
														
													
														
															
																 | 
																 | 
																	XGetTransientForHint(dpy, c->win, &trans); | 
																 | 
																 | 
																	XGetTransientForHint(dpy, c->win, &trans); | 
															
														
														
													
														
															
																 | 
																 | 
																	twa.override_redirect = 1; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	twa.background_pixmap = ParentRelative; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	twa.event_mask = ExposureMask | EnterWindowMask; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	c->twin = XCreateWindow(dpy, root, c->tx, c->ty, c->tw, c->th, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																			0, DefaultDepth(dpy, screen), CopyFromParent, | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																			DefaultVisual(dpy, screen), | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																			CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	grabbuttons(c, False); | 
																 | 
																 | 
																	grabbuttons(c, False); | 
															
														
														
													
														
															
																 | 
																 | 
																	updatetitle(c); | 
																 | 
																 | 
																	updatetitle(c); | 
															
														
														
													
														
															
																 | 
																 | 
																	settags(c, getclient(trans)); | 
																 | 
																 | 
																	settags(c, getclient(trans)); | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!c->isfloat) | 
																 | 
																 | 
																	if(!c->isfloat) | 
															
														
														
													
														
															
																 | 
																 | 
																		c->isfloat = trans || c->isfixed; | 
																 | 
																 | 
																		c->isfloat = trans || c->isfixed; | 
															
														
														
													
														
															
																 | 
																 | 
																	resizetitle(c); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(clients) | 
																 | 
																 | 
																	if(clients) | 
															
														
														
													
														
															
																 | 
																 | 
																		clients->prev = c; | 
																 | 
																 | 
																		clients->prev = c; | 
															
														
														
													
														
															
																 | 
																 | 
																	c->next = clients; | 
																 | 
																 | 
																	c->next = clients; | 
															
														
														
													
														
															
																 | 
																 | 
																	c->snext = stack; | 
																 | 
																 | 
																	c->snext = stack; | 
															
														
														
													
														
															
																 | 
																 | 
																	stack = clients = c; | 
																 | 
																 | 
																	stack = clients = c; | 
															
														
														
													
														
															
																 | 
																 | 
																	ban(c); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | 
															
														
														
													
														
															
																 | 
																 | 
																	XMapWindow(dpy, c->win); | 
																 | 
																 | 
																	XMapWindow(dpy, c->win); | 
															
														
														
													
														
															
																 | 
																 | 
																	XMapWindow(dpy, c->twin); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(isvisible(c)) | 
																 | 
																 | 
																	if(isvisible(c)) | 
															
														
														
													
														
															
																 | 
																 | 
																		focus(c); | 
																 | 
																 | 
																		focus(c); | 
															
														
														
													
														
															
																 | 
																 | 
																	arrange(); | 
																 | 
																 | 
																	arrange(); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -228,7 +201,6 @@ resize(Client *c, Bool sizehints, Corner sticky) { | 
															
														
														
													
														
															
																 | 
																 | 
																		c->x = sw - c->w; | 
																 | 
																 | 
																		c->x = sw - c->w; | 
															
														
														
													
														
															
																 | 
																 | 
																	if(c->y > sh) | 
																 | 
																 | 
																	if(c->y > sh) | 
															
														
														
													
														
															
																 | 
																 | 
																		c->y = sh - c->h; | 
																 | 
																 | 
																		c->y = sh - c->h; | 
															
														
														
													
														
															
																 | 
																 | 
																	resizetitle(c); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	wc.x = c->x; | 
																 | 
																 | 
																	wc.x = c->x; | 
															
														
														
													
														
															
																 | 
																 | 
																	wc.y = c->y; | 
																 | 
																 | 
																	wc.y = c->y; | 
															
														
														
													
														
															
																 | 
																 | 
																	wc.width = c->w; | 
																 | 
																 | 
																	wc.width = c->w; | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -242,19 +214,6 @@ resize(Client *c, Bool sizehints, Corner sticky) { | 
															
														
														
													
														
															
																 | 
																 | 
																	XSync(dpy, False); | 
																 | 
																 | 
																	XSync(dpy, False); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																resizetitle(Client *c) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	c->tw = textw(c->name); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(c->tw > c->w) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		c->tw = c->w + 2 * BORDERPX; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	c->tx = c->x + c->w - c->tw + 2 * BORDERPX; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	c->ty = c->y; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(isvisible(c)) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		XMoveResizeWindow(dpy, c->twin, c->tx, c->ty, c->tw, c->th); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	else | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		XMoveResizeWindow(dpy, c->twin, c->tx + 2 * sw, c->ty, c->tw, c->th); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																updatesizehints(Client *c) { | 
																 | 
																 | 
																updatesizehints(Client *c) { | 
															
														
														
													
														
															
																 | 
																 | 
																	long msize; | 
																 | 
																 | 
																	long msize; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -331,7 +290,6 @@ unmanage(Client *c) { | 
															
														
														
													
														
															
																 | 
																 | 
																		focus(nc); | 
																 | 
																 | 
																		focus(nc); | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																	XUngrabButton(dpy, AnyButton, AnyModifier, c->win); | 
																 | 
																 | 
																	XUngrabButton(dpy, AnyButton, AnyModifier, c->win); | 
															
														
														
													
														
															
																 | 
																 | 
																	XDestroyWindow(dpy, c->twin); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	free(c->tags); | 
																 | 
																 | 
																	free(c->tags); | 
															
														
														
													
														
															
																 | 
																 | 
																	free(c); | 
																 | 
																 | 
																	free(c); | 
															
														
														
													
														
															
																 | 
																 | 
																	XSync(dpy, False); | 
																 | 
																 | 
																	XSync(dpy, False); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |