about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--client.c7
-rw-r--r--view.c15
2 files changed, 11 insertions, 11 deletions
diff --git a/client.c b/client.c
index 45cb3a3..586a87f 100644
--- a/client.c
+++ b/client.c
@@ -99,13 +99,6 @@ focus(Client *c)
 		}
 	}
 	if(c) {
-		if(c->isfloat || arrange == dofloat) {
-			detach(c);
-			if(clients)
-				clients->prev = c;
-			c->next = clients;
-			clients = c;
-		}
 		grabbuttons(c, True);
 		drawtitle(c);
 		XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
diff --git a/view.c b/view.c
index e74d4bc..eddf2da 100644
--- a/view.c
+++ b/view.c
@@ -18,6 +18,15 @@ minclient()
 	return min;
 }
 
+static void
+pop(Client *c)
+{
+	detach(c);
+	if(clients)
+		clients->prev = c;
+	c->next = clients;
+	clients = c;
+}
 
 static void
 reorder()
@@ -223,6 +232,7 @@ restack()
 		return;
 	}
 	if(sel->isfloat || arrange == dofloat) {
+		pop(sel);
 		XRaiseWindow(dpy, sel->win);
 		XRaiseWindow(dpy, sel->twin);
 	}
@@ -297,10 +307,7 @@ zoom(Arg *arg)
 	if((c = sel) == nexttiled(clients))
 		if(!(c = nexttiled(c->next)))
 			return;
-	detach(c);
-	c->next = clients;
-	clients->prev = c;
-	clients = c;
+	pop(c);
 	focus(c);
 	arrange(NULL);
 }