--- a/client.c Thu Jul 20 19:09:11 2006 +0200
+++ b/client.c Fri Jul 21 07:37:52 2006 +0200
@@ -476,7 +476,7 @@
void
zoom(Arg *arg)
{
- Client *c;
+ Client *c, **l;
if(!sel)
return;
@@ -486,6 +486,19 @@
sel = c;
}
- pop(sel);
+ /* pop */
+ for(l = &clients; *l && *l != sel; l = &(*l)->next);
+ if(sel->prev)
+ sel->prev->next = sel->next;
+ if(sel->next)
+ sel->next->prev = sel->prev;
+ *l = sel->next;
+
+ sel->prev = NULL;
+ if(clients)
+ clients->prev = sel;
+ sel->next = clients;
+ clients = sel;
+ arrange(NULL);
focus(sel);
}