From b3d7e07f18f0f69f8c3b3542615da62dfc4c6175 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Mon, 19 Feb 2007 13:53:40 +0100 Subject: some more refactoring --- view.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'view.c') diff --git a/view.c b/view.c index cd07b94..4781b4e 100644 --- a/view.c +++ b/view.c @@ -7,6 +7,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; @@ -30,6 +44,24 @@ dofloat(void) { restack(); } +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 @@ focusprev(Arg *arg) { } } +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; -- cgit v1.2.3