Adding rotatestack patch
This commit is contained in:
52
patch/rotatestack.c
Normal file
52
patch/rotatestack.c
Normal file
@ -0,0 +1,52 @@
|
||||
void
|
||||
enqueue(Client *c)
|
||||
{
|
||||
Client *l;
|
||||
for (l = c->mon->clients; l && l->next; l = l->next);
|
||||
if (l) {
|
||||
l->next = c;
|
||||
c->next = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
enqueuestack(Client *c)
|
||||
{
|
||||
Client *l;
|
||||
for (l = c->mon->stack; l && l->snext; l = l->snext);
|
||||
if (l) {
|
||||
l->snext = c;
|
||||
c->snext = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
rotatestack(const Arg *arg)
|
||||
{
|
||||
Client *c = NULL, *f;
|
||||
|
||||
if (!selmon->sel)
|
||||
return;
|
||||
f = selmon->sel;
|
||||
if (arg->i > 0) {
|
||||
for (c = nexttiled(selmon->clients); c && nexttiled(c->next); c = nexttiled(c->next));
|
||||
if (c){
|
||||
detach(c);
|
||||
attach(c);
|
||||
detachstack(c);
|
||||
attachstack(c);
|
||||
}
|
||||
} else {
|
||||
if ((c = nexttiled(selmon->clients))){
|
||||
detach(c);
|
||||
enqueue(c);
|
||||
detachstack(c);
|
||||
enqueuestack(c);
|
||||
}
|
||||
}
|
||||
if (c){
|
||||
arrange(selmon);
|
||||
focus(f);
|
||||
restack(selmon);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user