@ -145,7 +145,6 @@ Bool gettextprop(Window w, Atom atom, char *text, unsigned int size);  
															
														 
														
													
														
															
																 
																 
																void  grabbuttons ( Client  * c ,  Bool  focused ) ;  
																 
																 
																void  grabbuttons ( Client  * c ,  Bool  focused ) ;  
															
														 
														
													
														
															
																 
																 
																unsigned  int  idxoftag ( const  char  * tag ) ;  
																 
																 
																unsigned  int  idxoftag ( const  char  * tag ) ;  
															
														 
														
													
														
															
																 
																 
																void  initfont ( const  char  * fontstr ) ;  
																 
																 
																void  initfont ( const  char  * fontstr ) ;  
															
														 
														
													
														
															
																 
																 
																Bool  isarrange ( void  ( * func ) ( ) ) ;  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																Bool  isoccupied ( unsigned  int  t ) ;  
																 
																 
																Bool  isoccupied ( unsigned  int  t ) ;  
															
														 
														
													
														
															
																 
																 
																Bool  isprotodel ( Client  * c ) ;  
																 
																 
																Bool  isprotodel ( Client  * c ) ;  
															
														 
														
													
														
															
																 
																 
																Bool  isvisible ( Client  * c ) ;  
																 
																 
																Bool  isvisible ( Client  * c ) ;  
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -198,9 +197,6 @@ int screen, sx, sy, sw, sh, wax, way, waw, wah;  
															
														 
														
													
														
															
																 
																 
																int  ( * xerrorxlib ) ( Display  * ,  XErrorEvent  * ) ;  
																 
																 
																int  ( * xerrorxlib ) ( Display  * ,  XErrorEvent  * ) ;  
															
														 
														
													
														
															
																 
																 
																unsigned  int  bh ,  bpos ;  
																 
																 
																unsigned  int  bh ,  bpos ;  
															
														 
														
													
														
															
																 
																 
																unsigned  int  blw  =  0 ;  
																 
																 
																unsigned  int  blw  =  0 ;  
															
														 
														
													
														
															
																 
																 
																unsigned  int  ltidx  =  0 ;  /* default */  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																unsigned  int  nlayouts  =  0 ;  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																unsigned  int  nrules  =  0 ;  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																unsigned  int  numlockmask  =  0 ;  
																 
																 
																unsigned  int  numlockmask  =  0 ;  
															
														 
														
													
														
															
																 
																 
																void  ( * handler [ LASTEvent ] )  ( XEvent  * )  =  {  
																 
																 
																void  ( * handler [ LASTEvent ] )  ( XEvent  * )  =  {  
															
														 
														
													
														
															
																 
																 
																	[ ButtonPress ]  =  buttonpress ,   
																 
																 
																	[ ButtonPress ]  =  buttonpress ,   
															
														 
														
													
												
													
														
															
																
																	
																	
																	
																		
																			 
																		 
																	
																 
																@ -217,6 +213,8 @@ void (*handler[LASTEvent]) (XEvent *) = {  
															
														 
														
													
														
															
																 
																 
																	[ UnmapNotify ]  =  unmapnotify   
																 
																 
																	[ UnmapNotify ]  =  unmapnotify   
															
														 
														
													
														
															
																 
																 
																} ;  
																 
																 
																} ;  
															
														 
														
													
														
															
																 
																 
																Atom  wmatom [ WMLast ] ,  netatom [ NetLast ] ;  
																 
																 
																Atom  wmatom [ WMLast ] ,  netatom [ NetLast ] ;  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																Bool  domwfact  =  True ;  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																Bool  dozoom  =  True ;  
															
														 
														
													
														
															
																 
																 
																Bool  otherwm ,  readin ;  
																 
																 
																Bool  otherwm ,  readin ;  
															
														 
														
													
														
															
																 
																 
																Bool  running  =  True ;  
																 
																 
																Bool  running  =  True ;  
															
														 
														
													
														
															
																 
																 
																Bool  selscreen  =  True ;  
																 
																 
																Bool  selscreen  =  True ;  
															
														 
														
													
												
													
														
															
																
																	
																	
																	
																		
																			 
																		 
																	
																 
																@ -226,6 +224,7 @@ Client *stack = NULL;  
															
														 
														
													
														
															
																 
																 
																Cursor  cursor [ CurLast ] ;  
																 
																 
																Cursor  cursor [ CurLast ] ;  
															
														 
														
													
														
															
																 
																 
																Display  * dpy ;  
																 
																 
																Display  * dpy ;  
															
														 
														
													
														
															
																 
																 
																DC  dc  =  { 0 } ;  
																 
																 
																DC  dc  =  { 0 } ;  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																Layout  * layout  =  NULL ;  
															
														 
														
													
														
															
																 
																 
																Window  barwin ,  root ;  
																 
																 
																Window  barwin ,  root ;  
															
														 
														
													
														
															
																 
																 
																Regs  * regs  =  NULL ;  
																 
																 
																Regs  * regs  =  NULL ;  
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
												
													
														
															
																
																	
																	
																	
																		
																			 
																		 
																	
																 
																@ -246,7 +245,7 @@ applyrules(Client *c) {  
															
														 
														
													
														
															
																 
																 
																	snprintf ( buf ,  sizeof  buf ,  " %s:%s:%s " ,   
																 
																 
																	snprintf ( buf ,  sizeof  buf ,  " %s:%s:%s " ,   
															
														 
														
													
														
															
																 
																 
																			ch . res_class  ?  ch . res_class  :  " " ,   
																 
																 
																			ch . res_class  ?  ch . res_class  :  " " ,   
															
														 
														
													
														
															
																 
																 
																			ch . res_name  ?  ch . res_name  :  " " ,  c - > name ) ;   
																 
																 
																			ch . res_name  ?  ch . res_name  :  " " ,  c - > name ) ;   
															
														 
														
													
														
															
																 
																 
																	for ( i  =  0 ;  i  <  nrules ;  i + + )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	for ( i  =  0 ;  i  <  NRULES ;  i + + )   
															
														 
														
													
														
															
																 
																 
																		if ( regs [ i ] . propregex  & &  ! regexec ( regs [ i ] . propregex ,  buf ,  1 ,  & tmp ,  0 ) )  {   
																 
																 
																		if ( regs [ i ] . propregex  & &  ! regexec ( regs [ i ] . propregex ,  buf ,  1 ,  & tmp ,  0 ) )  {   
															
														 
														
													
														
															
																 
																 
																			c - > isfloating  =  rules [ i ] . isfloating ;   
																 
																 
																			c - > isfloating  =  rules [ i ] . isfloating ;   
															
														 
														
													
														
															
																 
																 
																			for ( j  =  0 ;  regs [ i ] . tagregex  & &  j  <  NTAGS ;  j + + )  {   
																 
																 
																			for ( j  =  0 ;  regs [ i ] . tagregex  & &  j  <  NTAGS ;  j + + )  {   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -273,7 +272,7 @@ arrange(void) {  
															
														 
														
													
														
															
																 
																 
																			unban ( c ) ;   
																 
																 
																			unban ( c ) ;   
															
														 
														
													
														
															
																 
																 
																		else   
																 
																 
																		else   
															
														 
														
													
														
															
																 
																 
																			ban ( c ) ;   
																 
																 
																			ban ( c ) ;   
															
														 
														
													
														
															
																 
																 
																	layouts [ ltidx ] .  arrange ( ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	layout - > arrange ( ) ;   
															
														 
														
													
														
															
																 
																 
																	focus ( NULL ) ;   
																 
																 
																	focus ( NULL ) ;   
															
														 
														
													
														
															
																 
																 
																	restack ( ) ;   
																 
																 
																	restack ( ) ;   
															
														 
														
													
														
															
																 
																 
																}  
																 
																 
																}  
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -334,20 +333,20 @@ buttonpress(XEvent *e) {  
															
														 
														
													
														
															
																 
																 
																		if ( CLEANMASK ( ev - > state )  ! =  MODKEY )   
																 
																 
																		if ( CLEANMASK ( ev - > state )  ! =  MODKEY )   
															
														 
														
													
														
															
																 
																 
																			return ;   
																 
																 
																			return ;   
															
														 
														
													
														
															
																 
																 
																		if ( ev - > button  = =  Button1 )  {   
																 
																 
																		if ( ev - > button  = =  Button1 )  {   
															
														 
														
													
														
															
																 
																 
																			if ( isarrange ( floating )  | |  c - > isfloating )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																			if ( ( floating  = =  layout - > arrange )  | |  c - > isfloating )   
															
														 
														
													
														
															
																 
																 
																				restack ( ) ;   
																 
																 
																				restack ( ) ;   
															
														 
														
													
														
															
																 
																 
																			else   
																 
																 
																			else   
															
														 
														
													
														
															
																 
																 
																				togglefloating ( NULL ) ;   
																 
																 
																				togglefloating ( NULL ) ;   
															
														 
														
													
														
															
																 
																 
																			movemouse ( c ) ;   
																 
																 
																			movemouse ( c ) ;   
															
														 
														
													
														
															
																 
																 
																		}   
																 
																 
																		}   
															
														 
														
													
														
															
																 
																 
																		else  if ( ev - > button  = =  Button2 )  {   
																 
																 
																		else  if ( ev - > button  = =  Button2 )  {   
															
														 
														
													
														
															
																 
																 
																			if ( ( ISTILE )  & &  ! c - > isfixed  & &  c - > isfloating )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																			if ( ( floating  ! =  layout - > arrange )  & &  ! c - > isfixed  & &  c - > isfloating )   
															
														 
														
													
														
															
																 
																 
																				togglefloating ( NULL ) ;   
																 
																 
																				togglefloating ( NULL ) ;   
															
														 
														
													
														
															
																 
																 
																			else   
																 
																 
																			else   
															
														 
														
													
														
															
																 
																 
																				zoom ( NULL ) ;   
																 
																 
																				zoom ( NULL ) ;   
															
														 
														
													
														
															
																 
																 
																		}   
																 
																 
																		}   
															
														 
														
													
														
															
																 
																 
																		else  if ( ev - > button  = =  Button3  & &  ! c - > isfixed )  {   
																 
																 
																		else  if ( ev - > button  = =  Button3  & &  ! c - > isfixed )  {   
															
														 
														
													
														
															
																 
																 
																			if ( isarrange ( floating )  | |  c - > isfloating )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																			if ( ( floating  = =  layout - > arrange )  | |  c - > isfloating )   
															
														 
														
													
														
															
																 
																 
																				restack ( ) ;   
																 
																 
																				restack ( ) ;   
															
														 
														
													
														
															
																 
																 
																			else   
																 
																 
																			else   
															
														 
														
													
														
															
																 
																 
																				togglefloating ( NULL ) ;   
																 
																 
																				togglefloating ( NULL ) ;   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -401,9 +400,8 @@ compileregs(void) {  
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																	if ( regs )   
																 
																 
																	if ( regs )   
															
														 
														
													
														
															
																 
																 
																		return ;   
																 
																 
																		return ;   
															
														 
														
													
														
															
																 
																 
																	nrules  =  sizeof  rules  /  sizeof  rules [ 0 ] ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																	regs  =  emallocz ( nrules  *  sizeof ( Regs ) ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																	for ( i  =  0 ;  i  <  nrules ;  i + + )  {   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	regs  =  emallocz ( NRULES  *  sizeof ( Regs ) ) ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	for ( i  =  0 ;  i  <  NRULES ;  i + + )  {   
															
														 
														
													
														
															
																 
																 
																		if ( rules [ i ] . prop )  {   
																 
																 
																		if ( rules [ i ] . prop )  {   
															
														 
														
													
														
															
																 
																 
																			reg  =  emallocz ( sizeof ( regex_t ) ) ;   
																 
																 
																			reg  =  emallocz ( sizeof ( regex_t ) ) ;   
															
														 
														
													
														
															
																 
																 
																			if ( regcomp ( reg ,  rules [ i ] . prop ,  REG_EXTENDED ) )   
																 
																 
																			if ( regcomp ( reg ,  rules [ i ] . prop ,  REG_EXTENDED ) )   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -464,7 +462,7 @@ configurerequest(XEvent *e) {  
															
														 
														
													
														
															
																 
																 
																		c - > ismax  =  False ;   
																 
																 
																		c - > ismax  =  False ;   
															
														 
														
													
														
															
																 
																 
																		if ( ev - > value_mask  &  CWBorderWidth )   
																 
																 
																		if ( ev - > value_mask  &  CWBorderWidth )   
															
														 
														
													
														
															
																 
																 
																			c - > border  =  ev - > border_width ;   
																 
																 
																			c - > border  =  ev - > border_width ;   
															
														 
														
													
														
															
																 
																 
																		if ( c - > isfixed  | |  c - > isfloating  | |  isarrange ( floating ) )  {   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		if ( c - > isfixed  | |  c - > isfloating  | |  ( floating  = =  layout - > arrange ) )  {   
															
														 
														
													
														
															
																 
																 
																			if ( ev - > value_mask  &  CWX )   
																 
																 
																			if ( ev - > value_mask  &  CWX )   
															
														 
														
													
														
															
																 
																 
																				c - > x  =  ev - > x ;   
																 
																 
																				c - > x  =  ev - > x ;   
															
														 
														
													
														
															
																 
																 
																			if ( ev - > value_mask  &  CWY )   
																 
																 
																			if ( ev - > value_mask  &  CWY )   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -545,7 +543,7 @@ drawbar(void) {  
															
														 
														
													
														
															
																 
																 
																		dc . x  + =  dc . w ;   
																 
																 
																		dc . x  + =  dc . w ;   
															
														 
														
													
														
															
																 
																 
																	}   
																 
																 
																	}   
															
														 
														
													
														
															
																 
																 
																	dc . w  =  blw ;   
																 
																 
																	dc . w  =  blw ;   
															
														 
														
													
														
															
																 
																 
																	drawtext ( layouts [ ltidx ] .  symbol ,  dc . norm ) ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	drawtext ( layout - > symbol ,  dc . norm ) ;   
															
														 
														
													
														
															
																 
																 
																	x  =  dc . x  +  dc . w ;   
																 
																 
																	x  =  dc . x  +  dc . w ;   
															
														 
														
													
														
															
																 
																 
																	dc . w  =  textw ( stext ) ;   
																 
																 
																	dc . w  =  textw ( stext ) ;   
															
														 
														
													
														
															
																 
																 
																	dc . x  =  sw  -  dc . w ;   
																 
																 
																	dc . x  =  sw  -  dc . w ;   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -676,6 +674,7 @@ void  
															
														 
														
													
														
															
																 
																 
																floating ( void )  {  /* default floating layout */  
																 
																 
																floating ( void )  {  /* default floating layout */  
															
														 
														
													
														
															
																 
																 
																	Client  * c ;   
																 
																 
																	Client  * c ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	domwfact  =  dozoom  =  False ;   
															
														 
														
													
														
															
																 
																 
																	for ( c  =  clients ;  c ;  c  =  c - > next )   
																 
																 
																	for ( c  =  clients ;  c ;  c  =  c - > next )   
															
														 
														
													
														
															
																 
																 
																		if ( isvisible ( c ) )   
																 
																 
																		if ( isvisible ( c ) )   
															
														 
														
													
														
															
																 
																 
																			resize ( c ,  c - > x ,  c - > y ,  c - > w ,  c - > h ,  True ) ;   
																 
																 
																			resize ( c ,  c - > x ,  c - > y ,  c - > w ,  c - > h ,  True ) ;   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -888,12 +887,6 @@ initfont(const char *fontstr) {  
															
														 
														
													
														
															
																 
																 
																	dc . font . height  =  dc . font . ascent  +  dc . font . descent ;   
																 
																 
																	dc . font . height  =  dc . font . ascent  +  dc . font . descent ;   
															
														 
														
													
														
															
																 
																 
																}  
																 
																 
																}  
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																Bool  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																isarrange ( void  ( * func ) ( ) )  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																{  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																	return  func  = =  layouts [ ltidx ] . arrange ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																}  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																Bool  
																 
																 
																Bool  
															
														 
														
													
														
															
																 
																 
																isoccupied ( unsigned  int  t )  {  
																 
																 
																isoccupied ( unsigned  int  t )  {  
															
														 
														
													
														
															
																 
																 
																	Client  * c ;   
																 
																 
																	Client  * c ;   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -932,7 +925,6 @@ isvisible(Client *c) {  
															
														 
														
													
														
															
																 
																 
																void  
																 
																 
																void  
															
														 
														
													
														
															
																 
																 
																keypress ( XEvent  * e )  {  
																 
																 
																keypress ( XEvent  * e )  {  
															
														 
														
													
														
															
																 
																 
																	KEYS   
																 
																 
																	KEYS   
															
														 
														
													
														
															
																 
																 
																	unsigned  int  len  =  sizeof  keys  /  sizeof  keys [ 0 ] ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																	unsigned  int  i ;   
																 
																 
																	unsigned  int  i ;   
															
														 
														
													
														
															
																 
																 
																	KeyCode  code ;   
																 
																 
																	KeyCode  code ;   
															
														 
														
													
														
															
																 
																 
																	KeySym  keysym ;   
																 
																 
																	KeySym  keysym ;   
															
														 
														
													
												
													
														
															
																
																	
																	
																	
																		
																			 
																		 
																	
																 
																@ -940,7 +932,7 @@ keypress(XEvent *e) {  
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																	if ( ! e )  {  /* grabkeys */   
																 
																 
																	if ( ! e )  {  /* grabkeys */   
															
														 
														
													
														
															
																 
																 
																		XUngrabKey ( dpy ,  AnyKey ,  AnyModifier ,  root ) ;   
																 
																 
																		XUngrabKey ( dpy ,  AnyKey ,  AnyModifier ,  root ) ;   
															
														 
														
													
														
															
																 
																 
																		for ( i  =  0 ;  i  <  len ;  i + + )  {   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		for ( i  =  0 ;  i  <  NKEYS ;  i + + )  {   
															
														 
														
													
														
															
																 
																 
																			code  =  XKeysymToKeycode ( dpy ,  keys [ i ] . keysym ) ;   
																 
																 
																			code  =  XKeysymToKeycode ( dpy ,  keys [ i ] . keysym ) ;   
															
														 
														
													
														
															
																 
																 
																			XGrabKey ( dpy ,  code ,  keys [ i ] . mod ,  root ,  True ,   
																 
																 
																			XGrabKey ( dpy ,  code ,  keys [ i ] . mod ,  root ,  True ,   
															
														 
														
													
														
															
																 
																 
																					GrabModeAsync ,  GrabModeAsync ) ;   
																 
																 
																					GrabModeAsync ,  GrabModeAsync ) ;   
															
														 
														
													
												
													
														
															
																
																	
																	
																	
																		
																			 
																		 
																	
																 
																@ -955,7 +947,7 @@ keypress(XEvent *e) {  
															
														 
														
													
														
															
																 
																 
																	}   
																 
																 
																	}   
															
														 
														
													
														
															
																 
																 
																	ev  =  & e - > xkey ;   
																 
																 
																	ev  =  & e - > xkey ;   
															
														 
														
													
														
															
																 
																 
																	keysym  =  XKeycodeToKeysym ( dpy ,  ( KeyCode ) ev - > keycode ,  0 ) ;   
																 
																 
																	keysym  =  XKeycodeToKeysym ( dpy ,  ( KeyCode ) ev - > keycode ,  0 ) ;   
															
														 
														
													
														
															
																 
																 
																	for ( i  =  0 ;  i  <  len ;  i + + )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	for ( i  =  0 ;  i  <  NKEYS ;  i + + )   
															
														 
														
													
														
															
																 
																 
																		if ( keysym  = =  keys [ i ] . keysym   
																 
																 
																		if ( keysym  = =  keys [ i ] . keysym   
															
														 
														
													
														
															
																 
																 
																		& &  CLEANMASK ( keys [ i ] . mod )  = =  CLEANMASK ( ev - > state ) )   
																 
																 
																		& &  CLEANMASK ( keys [ i ] . mod )  = =  CLEANMASK ( ev - > state ) )   
															
														 
														
													
														
															
																 
																 
																		{   
																 
																 
																		{   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1266,9 +1258,9 @@ restack(void) {  
															
														 
														
													
														
															
																 
																 
																	drawbar ( ) ;   
																 
																 
																	drawbar ( ) ;   
															
														 
														
													
														
															
																 
																 
																	if ( ! sel )   
																 
																 
																	if ( ! sel )   
															
														 
														
													
														
															
																 
																 
																		return ;   
																 
																 
																		return ;   
															
														 
														
													
														
															
																 
																 
																	if ( sel - > isfloating  | |  isarrange ( floating ) )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	if ( sel - > isfloating  | |  ( floating  = =  layout - > arrange ) )   
															
														 
														
													
														
															
																 
																 
																		XRaiseWindow ( dpy ,  sel - > win ) ;   
																 
																 
																		XRaiseWindow ( dpy ,  sel - > win ) ;   
															
														 
														
													
														
															
																 
																 
																	if ( ! isarrange ( floating ) )  {   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	if ( floating  ! =  layout - > arrange )  {   
															
														 
														
													
														
															
																 
																 
																		wc . stack_mode  =  Below ;   
																 
																 
																		wc . stack_mode  =  Below ;   
															
														 
														
													
														
															
																 
																 
																		wc . sibling  =  barwin ;   
																 
																 
																		wc . sibling  =  barwin ;   
															
														 
														
													
														
															
																 
																 
																		if ( ! sel - > isfloating )  {   
																 
																 
																		if ( ! sel - > isfloating )  {   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1374,16 +1366,16 @@ setlayout(const char *arg) {  
															
														 
														
													
														
															
																 
																 
																	unsigned  int  i ;   
																 
																 
																	unsigned  int  i ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																	if ( ! arg )  {   
																 
																 
																	if ( ! arg )  {   
															
														 
														
													
														
															
																 
																 
																		if ( + + ltidx   = =  n layouts)   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																			ltidx  =  0 ;  ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		if ( + + layou t  = =  & layouts [ NLAYOUTS ] )   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																			layout  =  & layouts [ 0 ]  ;   
															
														 
														
													
														
															
																 
																 
																	}   
																 
																 
																	}   
															
														 
														
													
														
															
																 
																 
																	else  {   
																 
																 
																	else  {   
															
														 
														
													
														
															
																 
																 
																		for ( i  =  0 ;  i  <  nlayouts ;  i + + )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		for ( i  =  0 ;  i  <  NLAYOUTS ;  i + + )   
															
														 
														
													
														
															
																 
																 
																			if ( ! strcmp ( arg ,  layouts [ i ] . symbol ) )   
																 
																 
																			if ( ! strcmp ( arg ,  layouts [ i ] . symbol ) )   
															
														 
														
													
														
															
																 
																 
																				break ;   
																 
																 
																				break ;   
															
														 
														
													
														
															
																 
																 
																		if ( i  = =  nlayouts )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		if ( i  = =  NLAYOUTS )   
															
														 
														
													
														
															
																 
																 
																			return ;   
																 
																 
																			return ;   
															
														 
														
													
														
															
																 
																 
																		ltidx   =  i ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		layou t  =  & layouts [ i ] ;   
															
														 
														
													
														
															
																 
																 
																	}   
																 
																 
																	}   
															
														 
														
													
														
															
																 
																 
																	if ( sel )   
																 
																 
																	if ( sel )   
															
														 
														
													
														
															
																 
																 
																		arrange ( ) ;   
																 
																 
																		arrange ( ) ;   
															
														 
														
													
												
													
														
															
																
																	
																	
																	
																		
																			 
																		 
																	
																 
																@ -1395,7 +1387,7 @@ void  
															
														 
														
													
														
															
																 
																 
																setmwfact ( const  char  * arg )  {  
																 
																 
																setmwfact ( const  char  * arg )  {  
															
														 
														
													
														
															
																 
																 
																	double  delta ;   
																 
																 
																	double  delta ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																	if ( ! ( ISTILE ) )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	if ( ! domwfact )   
															
														 
														
													
														
															
																 
																 
																		return ;   
																 
																 
																		return ;   
															
														 
														
													
														
															
																 
																 
																	/* arg handling, manipulate mwfact */   
																 
																 
																	/* arg handling, manipulate mwfact */   
															
														 
														
													
														
															
																 
																 
																	if ( NULL  = =  arg )   
																 
																 
																	if ( NULL  = =  arg )   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1476,8 +1468,8 @@ setup(void) {  
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																	/* init layouts */   
																 
																 
																	/* init layouts */   
															
														 
														
													
														
															
																 
																 
																	mwfact  =  MWFACT ;   
																 
																 
																	mwfact  =  MWFACT ;   
															
														 
														
													
														
															
																 
																 
																	nlayouts  =  sizeof  layouts  /  sizeof  layouts [ 0 ] ;   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																	for ( blw  =  i  =  0 ;  i  <  nlayouts ;  i + + )  {   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	layout  =  & layouts [ 0 ] ;   
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	for ( blw  =  i  =  0 ;  i  <  NLAYOUTS ;  i + + )  {   
															
														 
														
													
														
															
																 
																 
																		j  =  textw ( layouts [ i ] . symbol ) ;   
																 
																 
																		j  =  textw ( layouts [ i ] . symbol ) ;   
															
														 
														
													
														
															
																 
																 
																		if ( j  >  blw )   
																 
																 
																		if ( j  >  blw )   
															
														 
														
													
														
															
																 
																 
																			blw  =  j ;   
																 
																 
																			blw  =  j ;   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1562,6 +1554,7 @@ tile(void) {  
															
														 
														
													
														
															
																 
																 
																	unsigned  int  i ,  n ,  nx ,  ny ,  nw ,  nh ,  mw ,  th ;   
																 
																 
																	unsigned  int  i ,  n ,  nx ,  ny ,  nw ,  nh ,  mw ,  th ;   
															
														 
														
													
														
															
																 
																 
																	Client  * c ,  * mc ;   
																 
																 
																	Client  * c ,  * mc ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	domwfact  =  dozoom  =  True ;   
															
														 
														
													
														
															
																 
																 
																	for ( n  =  0 ,  c  =  nexttiled ( clients ) ;  c ;  c  =  nexttiled ( c - > next ) )   
																 
																 
																	for ( n  =  0 ,  c  =  nexttiled ( clients ) ;  c ;  c  =  nexttiled ( c - > next ) )   
															
														 
														
													
														
															
																 
																 
																		n + + ;   
																 
																 
																		n + + ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1627,7 +1620,7 @@ togglemax(const char *arg) {  
															
														 
														
													
														
															
																 
																 
																	if ( ! sel  | |  sel - > isfixed )   
																 
																 
																	if ( ! sel  | |  sel - > isfixed )   
															
														 
														
													
														
															
																 
																 
																		return ;   
																 
																 
																		return ;   
															
														 
														
													
														
															
																 
																 
																	if ( ( sel - > ismax  =  ! sel - > ismax ) )  {   
																 
																 
																	if ( ( sel - > ismax  =  ! sel - > ismax ) )  {   
															
														 
														
													
														
															
																 
																 
																		if ( isarrange ( floating )  | |  sel - > isfloating )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																		if ( ( floating  = =  layout - > arrange )  | |  sel - > isfloating )   
															
														 
														
													
														
															
																 
																 
																			sel - > wasfloating  =  True ;   
																 
																 
																			sel - > wasfloating  =  True ;   
															
														 
														
													
														
															
																 
																 
																		else  {   
																 
																 
																		else  {   
															
														 
														
													
														
															
																 
																 
																			togglefloating ( NULL ) ;   
																 
																 
																			togglefloating ( NULL ) ;   
															
														 
														
													
												
													
														
															
																
																	
																		
																			 
																		 
																	
																	
																		
																			 
																		 
																	
																	
																 
																@ -1855,7 +1848,7 @@ void  
															
														 
														
													
														
															
																 
																 
																zoom ( const  char  * arg )  {  
																 
																 
																zoom ( const  char  * arg )  {  
															
														 
														
													
														
															
																 
																 
																	Client  * c ;   
																 
																 
																	Client  * c ;   
															
														 
														
													
														
															
																 
																 
																
  
																 
																 
																
  
															
														 
														
													
														
															
																 
																 
																	if ( ! sel  | |  ! ( ISTILE )   | |  sel - > isfloating )   
																 
																 
																 
															
														 
														
													
														
															
																 
																 
																 
																 
																 
																	if ( ! sel  | |  ! dozoom   | |  sel - > isfloating )   
															
														 
														
													
														
															
																 
																 
																		return ;   
																 
																 
																		return ;   
															
														 
														
													
														
															
																 
																 
																	if ( ( c  =  sel )  = =  nexttiled ( clients ) )   
																 
																 
																	if ( ( c  =  sel )  = =  nexttiled ( clients ) )   
															
														 
														
													
														
															
																 
																 
																		if ( ! ( c  =  nexttiled ( c - > next ) ) )   
																 
																 
																		if ( ! ( c  =  nexttiled ( c - > next ) ) )