about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAnselm R. Garbe <garbeam@wmii.de>2006-07-18 11:45:32 +0200
committerAnselm R. Garbe <garbeam@wmii.de>2006-07-18 11:45:32 +0200
commit0aaa9a21f334a5c75b7efce2712384f57bd370cd (patch)
tree69a9ca6c1c808555ddbe9ef51620c7b1e51f1557
parent4f8b08d330a6c377ab919f48b8e922d1c5ded601 (diff)
downloaddwm-0aaa9a21f334a5c75b7efce2712384f57bd370cd.tar.gz
pop on heretag
-rw-r--r--client.c21
-rw-r--r--dwm.h1
-rw-r--r--tag.c2
3 files changed, 16 insertions, 8 deletions
diff --git a/client.c b/client.c
index 166e979..fa48644 100644
--- a/client.c
+++ b/client.c
@@ -268,6 +268,18 @@ maximize(Arg *arg)
 }
 
 void
+pop(Client *c)
+{
+	Client **l;
+	for(l = &clients; *l && *l != c; l = &(*l)->next);
+	*l = c->next;
+
+	c->next = clients; /* pop */
+	clients = c;
+	arrange(NULL);
+}
+
+void
 resize(Client *c, Bool inc)
 {
 	XConfigureEvent e;
@@ -405,7 +417,7 @@ unmanage(Client *c)
 void
 zoom(Arg *arg)
 {
-	Client **l, *c;
+	Client *c;
 
 	if(!sel)
 		return;
@@ -415,11 +427,6 @@ zoom(Arg *arg)
 			sel = c;
 	}
 
-	for(l = &clients; *l && *l != sel; l = &(*l)->next);
-	*l = sel->next;
-
-	sel->next = clients; /* pop */
-	clients = sel;
-	arrange(NULL);
+	pop(sel);
 	focus(sel);
 }
diff --git a/dwm.h b/dwm.h
index 0d37e99..f2356a3 100644
--- a/dwm.h
+++ b/dwm.h
@@ -118,6 +118,7 @@ extern void killclient(Arg *arg);
 extern void lower(Client *c);
 extern void manage(Window w, XWindowAttributes *wa);
 extern void maximize(Arg *arg);
+extern void pop(Client *c);
 extern void resize(Client *c, Bool inc);
 extern void setsize(Client *c);
 extern void settitle(Client *c);
diff --git a/tag.c b/tag.c
index 3837fbd..fce3c6e 100644
--- a/tag.c
+++ b/tag.c
@@ -136,7 +136,7 @@ heretag(Arg *arg)
 	for(i = 0; i < TLast; i++)
 		c->tags[i] = NULL;
 	c->tags[tsel] = tags[tsel];
-	arrange(NULL);
+	pop(c);
 	focus(c);
 }
 
2 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264