| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -303,7 +303,7 @@ buttonpress(XEvent *e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Client *c; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XButtonPressedEvent *ev = &e->xbutton; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(barwin == ev->window) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(ev->window == barwin) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							x = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for(i = 0; i < LENGTH(tags); i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								x += textw(tags[i]); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -331,7 +331,7 @@ buttonpress(XEvent *e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(CLEANMASK(ev->state) != MODKEY) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(ev->button == Button1) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if((floating == layout->arrange) || c->isfloating) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if((layout->arrange == floating) || c->isfloating) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									restack(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									togglefloating(NULL); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -662,8 +662,8 @@ void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					expose(XEvent *e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XExposeEvent *ev = &e->xexpose; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(0 == ev->count) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(barwin == ev->window) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(ev->count == 0) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(ev->window == barwin) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								drawbar(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -777,7 +777,7 @@ gettextprop(Window w, Atom atom, char *text, unsigned int size) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int n; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XTextProperty name; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(!text || 0 == size) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(!text || size == 0) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return False; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						text[0] = '\0'; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XGetTextProperty(dpy, w, &name, atom); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -787,8 +787,7 @@ gettextprop(Window w, Atom atom, char *text, unsigned int size) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							strncpy(text, (char *)name.value, size - 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							&& n > 0 && *list) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							&& n > 0 && *list) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								strncpy(text, *list, size - 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								XFreeStringList(list); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1123,7 +1122,7 @@ propertynotify(XEvent *e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								default: break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								case XA_WM_TRANSIENT_FOR: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									XGetTransientForHint(dpy, c->win, &trans); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if(!c->isfloating && (c->isfloating = (NULL != getclient(trans)))) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if(!c->isfloating && (c->isfloating = (getclient(trans) != NULL))) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										arrange(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								case XA_WM_NORMAL_HINTS: | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1257,9 +1256,9 @@ restack(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						drawbar(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(!sel) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(sel->isfloating || (floating == layout->arrange)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(sel->isfloating || (layout->arrange == floating)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XRaiseWindow(dpy, sel->win); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(floating != layout->arrange) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(layout->arrange != floating) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							wc.stack_mode = Below; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							wc.sibling = barwin; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(!sel->isfloating) { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1396,9 +1395,9 @@ setmwfact(const char *arg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(!domwfact) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* arg handling, manipulate mwfact */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(NULL == arg) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(arg == NULL) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							mwfact = MWFACT; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						else if(1 == sscanf(arg, "%lf", &delta)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						else if(sscanf(arg, "%lf", &delta) == 1) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(arg[0] == '+' || arg[0] == '-') | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								mwfact += delta; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							else | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1513,8 +1512,8 @@ spawn(const char *arg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* The double-fork construct avoids zombie processes and keeps the code | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						 * clean from stupid signal handlers. */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(0 == fork()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(0 == fork()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(fork() == 0) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(fork() == 0) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(dpy) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									close(ConnectionNumber(dpy)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								setsid(); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1575,7 +1574,7 @@ tile(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						nw = 0; /* gcc stupidity requires this */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(i = 0, c = mc = nexttiled(clients); c; c = nexttiled(c->next), i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							c->ismax = False; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(0 == i) { /* master */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(i == 0) { /* master */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								nw = mw - 2 * c->border; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								nh = wah - 2 * c->border; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1626,7 +1625,7 @@ togglemax(const char *arg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(!sel || sel->isfixed) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if((sel->ismax = !sel->ismax)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if((floating == layout->arrange) || sel->isfloating) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if((layout->arrange == floating) || sel->isfloating) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								sel->wasfloating = True; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								togglefloating(NULL); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |