view.c
changeset 772 a1dd3d977e25
parent 771 05946fa53085
--- a/view.c	Mon Feb 19 13:42:39 2007 +0100
+++ b/view.c	Mon Feb 19 13:53:40 2007 +0100
@@ -8,6 +8,20 @@
 void (*arrange)(void) = DEFMODE;
 
 void
+attach(Client *c) {
+	if(clients)
+		clients->prev = c;
+	c->next = clients;
+	clients = c;
+}
+
+void
+attachstack(Client *c) {
+	c->snext = stack;
+	stack = c;
+}
+
+void
 dofloat(void) {
 	Client *c;
 
@@ -31,6 +45,24 @@
 }
 
 void
+detach(Client *c) {
+	if(c->prev)
+		c->prev->next = c->next;
+	if(c->next)
+		c->next->prev = c->prev;
+	if(c == clients)
+		clients = c->next;
+	c->next = c->prev = NULL;
+}
+
+void
+detachstack(Client *c) {
+	Client **tc;
+	for(tc=&stack; *tc && *tc != c; tc=&(*tc)->snext);
+	*tc = c->snext;
+}
+
+void
 focusnext(Arg *arg) {
 	Client *c;
    
@@ -62,6 +94,16 @@
 	}
 }
 
+Client *
+getclient(Window w) {
+	Client *c;
+
+	for(c = clients; c; c = c->next)
+		if(c->win == w)
+			return c;
+	return NULL;
+}
+
 Bool
 isvisible(Client *c) {
 	unsigned int i;