45 lines
		
	
	
		
			752 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			752 B
		
	
	
	
		
			C
		
	
	
	
	
	
Client *
 | 
						|
prevt(Client *c)
 | 
						|
{
 | 
						|
	Client *p, *r;
 | 
						|
 | 
						|
	for (p = selmon->clients, r = NULL; p && p != c; p = p->next)
 | 
						|
		if (!p->isfloating && ISVISIBLE(p))
 | 
						|
			r = p;
 | 
						|
	return r;
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
pushup(const Arg *arg)
 | 
						|
{
 | 
						|
	Client *sel = selmon->sel, *c;
 | 
						|
 | 
						|
	if (!sel || sel->isfloating)
 | 
						|
		return;
 | 
						|
	if ((c = prevt(sel)) && c != nexttiled(selmon->clients)) {
 | 
						|
		detach(sel);
 | 
						|
		sel->next = c;
 | 
						|
		for (c = selmon->clients; c->next != sel->next; c = c->next);
 | 
						|
		c->next = sel;
 | 
						|
	}
 | 
						|
	focus(sel);
 | 
						|
	arrange(selmon);
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
pushdown(const Arg *arg)
 | 
						|
{
 | 
						|
	Client *sel = selmon->sel, *c;
 | 
						|
 | 
						|
	if (!sel || sel->isfloating || sel == nexttiled(selmon->clients))
 | 
						|
		return;
 | 
						|
	if ((c = nexttiled(sel->next))) {
 | 
						|
		detach(sel);
 | 
						|
		sel->next = c->next;
 | 
						|
		c->next = sel;
 | 
						|
	}
 | 
						|
	focus(sel);
 | 
						|
	arrange(selmon);
 | 
						|
}
 | 
						|
 |