changed ban/unban implementation to not move the windows anymore, but map/unmap them instead - PLEASE TEST THIS
							parent
							
								
									4b9337a01e
								
							
						
					
					
						commit
						a54cf2ecef
					
				
							
								
								
									
										17
									
								
								client.c
								
								
								
								
							
							
						
						
									
										17
									
								
								client.c
								
								
								
								
							| 
						 | 
				
			
			@ -98,10 +98,12 @@ attach(Client *c) {
 | 
			
		|||
 | 
			
		||||
void
 | 
			
		||||
ban(Client *c) {
 | 
			
		||||
	if (c->isbanned)
 | 
			
		||||
	if(c->isbanned)
 | 
			
		||||
		return;
 | 
			
		||||
	XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
 | 
			
		||||
	XUnmapWindow(dpy, c->win);
 | 
			
		||||
	setclientstate(c, IconicState);
 | 
			
		||||
	c->isbanned = True;
 | 
			
		||||
	c->unmapped++;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
| 
						 | 
				
			
			@ -135,7 +137,7 @@ detach(Client *c) {
 | 
			
		|||
 | 
			
		||||
void
 | 
			
		||||
focus(Client *c) {
 | 
			
		||||
	if((!c && selscreen)|| (c && !isvisible(c)))
 | 
			
		||||
	if((!c && selscreen) || (c && !isvisible(c)))
 | 
			
		||||
		for(c = stack; c && !isvisible(c); c = c->snext);
 | 
			
		||||
	if(sel && sel != c) {
 | 
			
		||||
		grabbuttons(sel, False);
 | 
			
		||||
| 
						 | 
				
			
			@ -224,9 +226,7 @@ manage(Window w, XWindowAttributes *wa) {
 | 
			
		|||
		c->isfloating = (rettrans == Success) || c->isfixed;
 | 
			
		||||
	attach(c);
 | 
			
		||||
	attachstack(c);
 | 
			
		||||
	ban(c);
 | 
			
		||||
	XMapWindow(dpy, w);
 | 
			
		||||
	setclientstate(c, NormalState);
 | 
			
		||||
	c->isbanned = True;
 | 
			
		||||
	focus(c);
 | 
			
		||||
	lt->arrange();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -308,9 +308,10 @@ togglefloating(const char *arg) {
 | 
			
		|||
 | 
			
		||||
void
 | 
			
		||||
unban(Client *c) {
 | 
			
		||||
	if (!c->isbanned)
 | 
			
		||||
	if(!c->isbanned)
 | 
			
		||||
		return;
 | 
			
		||||
	XMoveWindow(dpy, c->win, c->x, c->y);
 | 
			
		||||
	XMapWindow(dpy, c->win);
 | 
			
		||||
	setclientstate(c, NormalState);
 | 
			
		||||
	c->isbanned = False;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
# dwm version
 | 
			
		||||
VERSION = 4.3
 | 
			
		||||
VERSION = 4.4
 | 
			
		||||
 | 
			
		||||
# Customize below to fit your system
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								dwm.h
								
								
								
								
							
							
						
						
									
										1
									
								
								dwm.h
								
								
								
								
							| 
						 | 
				
			
			@ -48,6 +48,7 @@ struct Client {
 | 
			
		|||
	int rx, ry, rw, rh; /* revert geometry */
 | 
			
		||||
	int basew, baseh, incw, inch, maxw, maxh, minw, minh;
 | 
			
		||||
	int minax, maxax, minay, maxay;
 | 
			
		||||
	int unmapped;
 | 
			
		||||
	long flags; 
 | 
			
		||||
	unsigned int border, oldborder;
 | 
			
		||||
	Bool isbanned, isfixed, ismax, isfloating;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue