client.c
changeset 130 30d1302dbe3b
parent 129 c478383db7c9
child 142 9b9deafa0508
--- 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);
 }