| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -51,7 +51,7 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define MOUSEMASK               (BUTTONMASK|PointerMotionMask) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define WIDTH(X)                ((X)->w + 2 * (X)->bw) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define HEIGHT(X)               ((X)->h + 2 * (X)->bw) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define TAGMASK                 ((int)((1LL << LENGTH(tags)) - 1)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define TAGMASK                 ((int)((1 << LENGTH(tags)) - 1)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define TEXTW(X)                (textnw(X, strlen(X)) + dc.font.height) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* enums */ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -271,7 +271,7 @@ static Window root; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#include "config.h" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* compile-time check if all tags fit into an unsigned int bit array. */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					struct NumTags { char limitexceeded[sizeof(unsigned int) * 8 < LENGTH(tags) ? -1 : 1]; }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* function implementations */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -420,9 +420,9 @@ buttonpress(XEvent *e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(ev->window == selmon->barwin) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							i = x = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							do | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							do { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								x += TEXTW(tags[i]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							while(ev->x >= x && ++i < LENGTH(tags)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} while(ev->x >= x && ++i < LENGTH(tags)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(i < LENGTH(tags)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								click = ClkTagBar; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								arg.ui = 1 << i; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -977,6 +977,7 @@ initfont(const char *fontstr) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XFontSetExtents *font_extents; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XFontStruct **xfonts; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							char **font_names; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							dc.font.ascent = dc.font.descent = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							font_extents = XExtentsOfFontSet(dc.font.set); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							n = XFontsOfFontSet(dc.font.set, &xfonts, &font_names); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1184,8 +1185,7 @@ movemouse(const Arg *arg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									resize(c, nx, ny, c->w, c->h, True); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						while(ev.type != ButtonRelease); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} while(ev.type != ButtonRelease); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XUngrabPointer(dpy, CurrentTime); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if((m = ptrtomon(c->x + c->w / 2, c->y + c->h / 2)) != selmon) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							sendmon(c, m); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1303,8 +1303,7 @@ resizemouse(const Arg *arg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									resize(c, c->x, c->y, nw, nh, True); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						while(ev.type != ButtonRelease); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} while(ev.type != ButtonRelease); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XUngrabPointer(dpy, CurrentTime); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1347,7 +1346,7 @@ run(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSync(dpy, False); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						while(running && !XNextEvent(dpy, &ev)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(handler[ev.type]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								(handler[ev.type])(&ev); /* call handler */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								handler[ev.type](&ev); /* call handler */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |