about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--view.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/view.c b/view.c
index d61d0de..b76b47e 100644
--- a/view.c
+++ b/view.c
@@ -317,8 +317,14 @@ zoom(Arg *arg)
 	if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized)
 		return;
 
-	if((c = sel) == getnext(clients))
-		for(c = getnext(c->next); c && c->isfloat; c = getnext(c->next));
+	/* this is somewhat tricky, it asserts to only zoom tiled clients */
+	for(c = clients; c && c->isfloat; c = getnext(c->next));
+	if(c) {
+		if(c == sel)
+			for(c = getnext(c->next); c && c->isfloat; c = getnext(c->next));
+		else
+			c = sel;
+	}
 	if(!c)
 		return;
 	detach(c);