diff options
| -rw-r--r-- | dwm.c | 13 | 
1 files changed, 8 insertions, 5 deletions
@@ -829,12 +829,14 @@ focusstack(const Arg *arg) {  Client *  getclient(Window w) { -	Client *c = NULL; +	Client *c;  	Monitor *m;  	for(m = mons; m; m = m->next) -		for(c = m->clients; c && c->win != w; c = c->next); -	return c; +		for(c = m->clients; c; c = c->next) +			if(c->win == w) +				return c; +	return NULL;  }  unsigned long @@ -1726,8 +1728,9 @@ updategeom(void) {  	/* reassign left over clients of disappeared monitors */  	for(tm = mons; tm; tm = tm->next) { -		while((c = tm->clients)) { -			detach(c); +		while(tm->clients) { +			c = tm->clients; +			tm->clients = c->next;  			detachstack(c);  			c->mon = newmons;  			attach(c);  | 
