/* static */
-static Client *
-minclient(void) {
- Client *c, *min;
-
- if((clients && clients->isfloat) || arrange == dofloat)
- return clients; /* don't touch floating order */
- for(min = c = clients; c; c = c->next)
- if(c->weight < min->weight)
- min = c;
- return min;
-}
-
static Client *
nexttiled(Client *c) {
for(c = getnext(c); c && c->isfloat; c = getnext(c->next));
return c;
}
-static void
-reorder(void) {
- Client *c, *newclients, *tail;
-
- newclients = tail = NULL;
- while((c = minclient())) {
- detach(c);
- if(tail) {
- c->prev = tail;
- tail->next = c;
- tail = c;
- }
- else
- tail = newclients = c;
- }
- clients = newclients;
-}
-
static void
togglemax(Client *c) {
XEvent ev;
c->h = wah - 2 * BORDERPX;
}
else if(i == 0) { /* master window */
- c->w = waw - stackw - 2 * BORDERPX;
+ c->w = mpx - 2 * BORDERPX;
c->h = wah - 2 * BORDERPX;
th = wah / (n - 1);
}
c->x += mpx;
c->w = stackw - 2 * BORDERPX;
if(th > bh) {
- c->y = way + (i - 1) * th;
+ c->y += (i - 1) * th;
c->h = th - 2 * BORDERPX;
}
else /* fallback if th < bh */
while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
}
+void
+togglefloat(Arg *arg) {
+ if (!sel || arrange == dofloat)
+ return;
+ sel->isfloat = !sel->isfloat;
+ arrange();
+}
+
void
togglemode(Arg *arg) {
arrange = (arrange == dofloat) ? dotile : dofloat;
for(i = 0; i < ntags && !seltag[i]; i++);
if(i == ntags)
seltag[arg->i] = True; /* cannot toggle last view */
- reorder();
arrange();
}
unsigned int i;
for(i = 0; i < ntags; i++)
- seltag[i] = False;
+ seltag[i] = (arg->i == -1) ? True : False;
seltag[arg->i] = True;
- reorder();
- arrange();
-}
-
-void
-viewall(Arg *arg) {
- unsigned int i;
-
- for(i = 0; i < ntags; i++)
- seltag[i] = True;
- reorder();
arrange();
}