-reorder()
-{
- 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;
+pop(Client *c) {
+ detach(c);
+ if(clients)
+ clients->prev = c;
+ c->next = clients;
+ clients = c;
+}
+
+static void
+swap(Client *c1, Client *c2) {
+ Client tmp = *c1;
+ Client *cp = c1->prev;
+ Client *cn = c1->next;
+
+ *c1 = *c2;
+ c1->prev = cp;
+ c1->next = cn;
+ cp = c2->prev;
+ cn = c2->next;
+ *c2 = tmp;
+ c2->prev = cp;
+ c2->next = cn;
+}
+
+static void
+togglemax(Client *c) {
+ XEvent ev;
+
+ if(c->isfixed)
+ return;
+
+ if((c->ismax = !c->ismax)) {
+ c->rx = c->x; c->x = wax;
+ c->ry = c->y; c->y = way;
+ c->rw = c->w; c->w = waw - 2 * BORDERPX;
+ c->rh = c->h; c->h = wah - 2 * BORDERPX;