diff options
| -rw-r--r-- | client.c | 8 | ||||
| -rw-r--r-- | view.c | 50 | 
2 files changed, 9 insertions, 49 deletions
| @@ -99,14 +99,6 @@ focus(Client *c)  		}  	}  	if(c) { -		if((c->isfloat || arrange == dofloat) && (c != clients)) { -			detach(c); -			if(clients) { -				clients->prev = c; -				c->next = clients; -			} -			clients = c; -		}  		grabbuttons(c, True);  		drawtitle(c);  		XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); @@ -215,52 +215,20 @@ resizecol(Arg *arg)  void  restack()  { -	static unsigned int nwins = 0; -	static Window *wins = NULL; -	unsigned int f, fi, m, mi, n;  	Client *c;  	XEvent ev; - -	for(f = 0, m = 0, c = clients; c; c = c->next) -		if(isvisible(c)) { -			if(c->isfloat || arrange == dofloat) -				f++; -			else -				m++; -		} -	if(!(n = 2 * (f + m))) { -		drawstatus(); +	 +	if(!sel)  		return; +	if(sel->isfloat || arrange == dofloat) { +		XRaiseWindow(dpy, sel->win); +		XRaiseWindow(dpy, sel->twin);  	} -	if(nwins < n) { -		nwins = n; -		wins = erealloc(wins, nwins * sizeof(Window)); -	} - -	fi = 0; -	mi = 2 * f; -	if(sel) { -		if(sel->isfloat || arrange == dofloat) { -			wins[fi++] = sel->twin; -			wins[fi++] = sel->win; -		} -		else { -			wins[mi++] = sel->twin; -			wins[mi++] = sel->win; -		} -	} -	for(c = clients; c; c = c->next) -		if(isvisible(c) && c != sel) { -			if(c->isfloat || arrange == dofloat) { -				wins[fi++] = c->twin; -				wins[fi++] = c->win; -			} -			else { -				wins[mi++] = c->twin; -				wins[mi++] = c->win; -			} +	if(arrange != dofloat)  +		for(c = nexttiled(clients); c; c = nexttiled(c->next)) { +			XLowerWindow(dpy, c->twin); +			XLowerWindow(dpy, c->win);  		} -	XRestackWindows(dpy, wins, n);  	drawall();  	XSync(dpy, False);  	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); | 
