| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -119,6 +119,7 @@ struct Monitor { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int by;               /* bar geometry */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int mx, my, mw, mh;   /* screen size */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int wx, wy, ww, wh;   /* window area  */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int gappx;            /* gaps between windows */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						unsigned int seltags; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						unsigned int sellt; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						unsigned int tagset[2]; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -200,6 +201,7 @@ static void sendmon(Client *c, Monitor *m); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void setclientstate(Client *c, long state); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void setfocus(Client *c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void setfullscreen(Client *c, int fullscreen); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void setgaps(const Arg *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void setlayout(const Arg *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void setmfact(const Arg *arg); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void setup(void); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -639,6 +641,7 @@ createmon(void) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						m->nmaster = nmaster; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						m->showbar = showbar; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						m->topbar = topbar; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						m->gappx = gappx; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						m->lt[0] = &layouts[0]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						m->lt[1] = &layouts[1 % LENGTH(layouts)]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1498,6 +1501,16 @@ setfullscreen(Client *c, int fullscreen) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					setgaps(const Arg *arg) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if ((arg->i == 0) || (selmon->gappx + arg->i < 0)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							selmon->gappx = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							selmon->gappx += arg->i; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						arrange(selmon); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					setlayout(const Arg *arg) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1684,18 +1697,18 @@ tile(Monitor *m) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if (n > m->nmaster) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							mw = m->nmaster ? m->ww * m->mfact : 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							mw = m->ww; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							mw = m->ww - m->gappx; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for (i = 0, my = ty = m->gappx, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (i < m->nmaster) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								h = (m->wh - my) / (MIN(n, m->nmaster) - i); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if (my + HEIGHT(c) < m->wh) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									my += HEIGHT(c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								h = (m->wh - my) / (MIN(n, m->nmaster) - i) - m->gappx; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								resize(c, m->wx + m->gappx, m->wy + my, mw - (2*c->bw) - m->gappx, h - (2*c->bw), 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								my += HEIGHT(c) + m->gappx; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								h = (m->wh - ty) / (n - i); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if (ty + HEIGHT(c) < m->wh) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									ty += HEIGHT(c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								h = (m->wh - ty) / (n - i) - m->gappx; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								resize(c, m->wx + mw + m->gappx, m->wy + ty, m->ww - mw - (2*c->bw) - 2*m->gappx, h - (2*c->bw), 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								ty += HEIGHT(c) + m->gappx; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |