applied anydot's 3 minor patches, thank you anydot
This commit is contained in:
		
							parent
							
								
									492c6f10fc
								
							
						
					
					
						commit
						199a601611
					
				
							
								
								
									
										17
									
								
								client.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								client.c
									
									
									
									
									
								
							| @ -129,8 +129,8 @@ detach(Client *c) { | ||||
| 
 | ||||
| void | ||||
| focus(Client *c) { | ||||
| 	if(c && !isvisible(c)) | ||||
| 		return; | ||||
| 	if( !c && selscreen || c && !isvisible(c)) | ||||
| 		for(c = stack; c && !isvisible(c); c = c->snext); | ||||
| 	if(sel && sel != c) { | ||||
| 		grabbuttons(sel, False); | ||||
| 		XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]); | ||||
| @ -152,14 +152,6 @@ focus(Client *c) { | ||||
| 		XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| focustopvisible(void) { | ||||
| 	Client *c; | ||||
| 
 | ||||
| 	for(c = stack; c && !isvisible(c); c = c->snext); | ||||
| 	focus(c); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| killclient(const char *arg) { | ||||
| 	XEvent ev; | ||||
| @ -230,8 +222,7 @@ manage(Window w, XWindowAttributes *wa) { | ||||
| 	XMoveWindow(dpy, w, c->x + 2 * sw, c->y); | ||||
| 	XMapWindow(dpy, w); | ||||
| 	setclientstate(c, NormalState); | ||||
| 	if(isvisible(c)) | ||||
| 		focus(c); | ||||
| 	focus(c); | ||||
| 	lt->arrange(); | ||||
| } | ||||
| 
 | ||||
| @ -401,7 +392,7 @@ unmanage(Client *c) { | ||||
| 	detach(c); | ||||
| 	detachstack(c); | ||||
| 	if(sel == c) | ||||
| 		focustopvisible(); | ||||
| 		focus(NULL); | ||||
| 	XUngrabButton(dpy, AnyButton, AnyModifier, c->win); | ||||
| 	setclientstate(c, WithdrawnState); | ||||
| 	free(c->tags); | ||||
|  | ||||
							
								
								
									
										3
									
								
								dwm.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								dwm.h
									
									
									
									
									
								
							| @ -100,8 +100,7 @@ Window root, barwin; | ||||
| void attach(Client *c);			/* attaches c to global client list */ | ||||
| void configure(Client *c);		/* send synthetic configure event */ | ||||
| void detach(Client *c);			/* detaches c from global client list */ | ||||
| void focus(Client *c);			/* focus c, c may be NULL */ | ||||
| void focustopvisible(void);		/* focus top visible window on stack */ | ||||
| void focus(Client *c);			/* focus c if visible && !NULL, or focus top visible */ | ||||
| void killclient(const char *arg);	/* kill sel  nicely */ | ||||
| void manage(Window w, XWindowAttributes *wa);	/* manage new client */ | ||||
| void resize(Client *c, int x, int y, | ||||
|  | ||||
							
								
								
									
										4
									
								
								event.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								event.c
									
									
									
									
									
								
							| @ -242,11 +242,11 @@ enternotify(XEvent *e) { | ||||
| 
 | ||||
| 	if(ev->mode != NotifyNormal || ev->detail == NotifyInferior) | ||||
| 		return; | ||||
| 	if((c = getclient(ev->window)) && isvisible(c)) | ||||
| 	if(c = getclient(ev->window)) | ||||
| 		focus(c); | ||||
| 	else if(ev->window == root) { | ||||
| 		selscreen = True; | ||||
| 		focustopvisible(); | ||||
| 		focus(NULL); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										41
									
								
								layout.c
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								layout.c
									
									
									
									
									
								
							| @ -13,6 +13,22 @@ static unsigned int nlayouts = 0; | ||||
| static unsigned int masterw = MASTERWIDTH; | ||||
| static unsigned int nmaster = NMASTER; | ||||
| 
 | ||||
| static void | ||||
| ban(Client *c) { | ||||
| 	if (c->isbanned) | ||||
| 		return; | ||||
| 	XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | ||||
| 	c->isbanned = True; | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| unban(Client *c) { | ||||
| 	if (!c->isbanned) | ||||
| 		return; | ||||
| 	XMoveWindow(dpy, c->win, c->x, c->y); | ||||
| 	c->isbanned = False; | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| tile(void) { | ||||
| 	unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th; | ||||
| @ -28,9 +44,7 @@ tile(void) { | ||||
| 
 | ||||
| 	for(i = 0, c = clients; c; c = c->next) | ||||
| 		if(isvisible(c)) { | ||||
| 			if(c->isbanned) | ||||
| 				XMoveWindow(dpy, c->win, c->x, c->y); | ||||
| 			c->isbanned = False; | ||||
| 			unban(c); | ||||
| 			if(c->isfloating) | ||||
| 				continue; | ||||
| 			c->ismax = False; | ||||
| @ -60,12 +74,9 @@ tile(void) { | ||||
| 			resize(c, nx, ny, nw, nh, False); | ||||
| 			i++; | ||||
| 		} | ||||
| 		else { | ||||
| 			c->isbanned = True; | ||||
| 			XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | ||||
| 		} | ||||
| 	if(!sel || !isvisible(sel))  | ||||
| 		focustopvisible(); | ||||
| 		else | ||||
| 			ban(c); | ||||
| 	focus(NULL); | ||||
| 	restack(); | ||||
| } | ||||
| 
 | ||||
| @ -77,20 +88,16 @@ void | ||||
| floating(void) { | ||||
| 	Client *c; | ||||
| 
 | ||||
| 	for(c = clients; c; c = c->next) { | ||||
| 	for(c = clients; c; c = c->next) | ||||
| 		if(isvisible(c)) { | ||||
| 			if(c->isbanned) | ||||
| 				XMoveWindow(dpy, c->win, c->x, c->y); | ||||
| 			c->isbanned = False; | ||||
| 			resize(c, c->x, c->y, c->w, c->h, True); | ||||
| 		} | ||||
| 		else { | ||||
| 			c->isbanned = True; | ||||
| 			XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | ||||
| 		} | ||||
| 	} | ||||
| 	if(!sel || !isvisible(sel)) | ||||
| 		focustopvisible(); | ||||
| 		else | ||||
| 			ban(c); | ||||
| 	focus(NULL); | ||||
| 	restack(); | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Anselm R. Garbe
						Anselm R. Garbe