commit
a047e3721c
2 changed files with 75 additions and 2 deletions
@ -0,0 +1,66 @@ |
|||||||
|
void |
||||||
|
fibonacci(Monitor *mon, int s) { |
||||||
|
unsigned int i, n, nx, ny, nw, nh; |
||||||
|
Client *c; |
||||||
|
|
||||||
|
for(n = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next), n++); |
||||||
|
if(n == 0) |
||||||
|
return; |
||||||
|
|
||||||
|
nx = mon->wx; |
||||||
|
ny = 0; |
||||||
|
nw = mon->ww; |
||||||
|
nh = mon->wh; |
||||||
|
|
||||||
|
for(i = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next)) { |
||||||
|
if((i % 2 && nh / 2 > 2 * c->bw) |
||||||
|
|| (!(i % 2) && nw / 2 > 2 * c->bw)) { |
||||||
|
if(i < n - 1) { |
||||||
|
if(i % 2) |
||||||
|
nh /= 2; |
||||||
|
else |
||||||
|
nw /= 2; |
||||||
|
if((i % 4) == 2 && !s) |
||||||
|
nx += nw; |
||||||
|
else if((i % 4) == 3 && !s) |
||||||
|
ny += nh; |
||||||
|
} |
||||||
|
if((i % 4) == 0) { |
||||||
|
if(s) |
||||||
|
ny += nh; |
||||||
|
else |
||||||
|
ny -= nh; |
||||||
|
} |
||||||
|
else if((i % 4) == 1) |
||||||
|
nx += nw; |
||||||
|
else if((i % 4) == 2) |
||||||
|
ny += nh; |
||||||
|
else if((i % 4) == 3) { |
||||||
|
if(s) |
||||||
|
nx += nw; |
||||||
|
else |
||||||
|
nx -= nw; |
||||||
|
} |
||||||
|
if(i == 0) |
||||||
|
{ |
||||||
|
if(n != 1) |
||||||
|
nw = mon->ww * mon->mfact; |
||||||
|
ny = mon->wy; |
||||||
|
} |
||||||
|
else if(i == 1) |
||||||
|
nw = mon->ww - nw; |
||||||
|
i++; |
||||||
|
} |
||||||
|
resize(c, nx, ny, nw - 2 * c->bw, nh - 2 * c->bw, False); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
void |
||||||
|
dwindle(Monitor *mon) { |
||||||
|
fibonacci(mon, 1); |
||||||
|
} |
||||||
|
|
||||||
|
void |
||||||
|
spiral(Monitor *mon) { |
||||||
|
fibonacci(mon, 0); |
||||||
|
} |
Loading…
Reference in new issue