30 lines
		
	
	
		
			561 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			561 B
		
	
	
	
		
			C
		
	
	
	
	
	
| void
 | |
| switchcol(const Arg *arg)
 | |
| {
 | |
| 	Client *c, *t;
 | |
| 	int col = 0;
 | |
| 	int i;
 | |
| 
 | |
| 	if (!selmon->sel)
 | |
| 		return;
 | |
| 	for (i = 0, c = nexttiled(selmon->clients); c ;
 | |
| 	     c = nexttiled(c->next), i++) {
 | |
| 		if (c == selmon->sel)
 | |
| 			col = (i + 1) > selmon->nmaster;
 | |
| 	}
 | |
| 	if (i <= selmon->nmaster)
 | |
| 		return;
 | |
| 	for (c = selmon->stack; c; c = c->snext) {
 | |
| 		if (!ISVISIBLE(c))
 | |
| 			continue;
 | |
| 		for (i = 0, t = nexttiled(selmon->clients); t && t != c;
 | |
| 		     t = nexttiled(t->next), i++);
 | |
| 		if (t && (i + 1 > selmon->nmaster) != col) {
 | |
| 			focus(c);
 | |
| 			restack(selmon);
 | |
| 			break;
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 |