moved focus{next,prev} and nexttiled from client.c to layout.c (because those are not client-specific), moved toggleversatile() from layout.c to client.c (because those are client-specific)
This commit is contained in:
		
							parent
							
								
									f196b71e4d
								
							
						
					
					
						commit
						29c26b88e7
					
				
							
								
								
									
										46
									
								
								client.c
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								client.c
									
									
									
									
									
								
							@ -170,38 +170,6 @@ focus(Client *c) {
 | 
			
		||||
		XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
focusnext(Arg *arg) {
 | 
			
		||||
	Client *c;
 | 
			
		||||
   
 | 
			
		||||
	if(!sel)
 | 
			
		||||
		return;
 | 
			
		||||
	for(c = sel->next; c && !isvisible(c); c = c->next);
 | 
			
		||||
	if(!c)
 | 
			
		||||
		for(c = clients; c && !isvisible(c); c = c->next);
 | 
			
		||||
	if(c) {
 | 
			
		||||
		focus(c);
 | 
			
		||||
		restack();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
focusprev(Arg *arg) {
 | 
			
		||||
	Client *c;
 | 
			
		||||
 | 
			
		||||
	if(!sel)
 | 
			
		||||
		return;
 | 
			
		||||
	for(c = sel->prev; c && !isvisible(c); c = c->prev);
 | 
			
		||||
	if(!c) {
 | 
			
		||||
		for(c = clients; c && c->next; c = c->next);
 | 
			
		||||
		for(; c && !isvisible(c); c = c->prev);
 | 
			
		||||
	}
 | 
			
		||||
	if(c) {
 | 
			
		||||
		focus(c);
 | 
			
		||||
		restack();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
killclient(Arg *arg) {
 | 
			
		||||
	if(!sel)
 | 
			
		||||
@ -266,12 +234,6 @@ manage(Window w, XWindowAttributes *wa) {
 | 
			
		||||
	lt->arrange();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Client *
 | 
			
		||||
nexttiled(Client *c) {
 | 
			
		||||
	for(; c && (c->isversatile || !isvisible(c)); c = c->next);
 | 
			
		||||
	return c;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
 | 
			
		||||
	float actual, dx, dy, max, min;
 | 
			
		||||
@ -340,6 +302,14 @@ resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
toggleversatile(Arg *arg) {
 | 
			
		||||
	if(!sel || lt->arrange == versatile)
 | 
			
		||||
		return;
 | 
			
		||||
	sel->isversatile = !sel->isversatile;
 | 
			
		||||
	lt->arrange();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
updatesizehints(Client *c) {
 | 
			
		||||
	long msize;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								dwm.h
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								dwm.h
									
									
									
									
									
								
							@ -105,13 +105,11 @@ extern Window root, barwin;
 | 
			
		||||
/* client.c */
 | 
			
		||||
extern void configure(Client *c);		/* send synthetic configure event */
 | 
			
		||||
extern void focus(Client *c);			/* focus c, c may be NULL */
 | 
			
		||||
extern void focusnext(Arg *arg);		/* focuses next visible client, arg is ignored  */
 | 
			
		||||
extern void focusprev(Arg *arg);		/* focuses previous visible client, arg is ignored */
 | 
			
		||||
extern void killclient(Arg *arg);		/* kill c nicely */
 | 
			
		||||
extern void manage(Window w, XWindowAttributes *wa);	/* manage new client */
 | 
			
		||||
extern Client *nexttiled(Client *c);		/* returns tiled successor of c */
 | 
			
		||||
extern void resize(Client *c, int x, int y,
 | 
			
		||||
		int w, int h, Bool sizehints);	/* resize with given coordinates c*/
 | 
			
		||||
extern void toggleversatile(Arg *arg);		/* toggles focused client between versatile/and non-versatile state */
 | 
			
		||||
extern void updatesizehints(Client *c);		/* update the size hint variables of c */
 | 
			
		||||
extern void updatetitle(Client *c);		/* update the name of c */
 | 
			
		||||
extern void unmanage(Client *c);		/* destroy c */
 | 
			
		||||
@ -127,12 +125,14 @@ extern unsigned int textw(const char *text);	/* return the width of text in px*/
 | 
			
		||||
extern void grabkeys(void);			/* grab all keys defined in config.h */
 | 
			
		||||
 | 
			
		||||
/* layout.c */
 | 
			
		||||
extern void focusnext(Arg *arg);		/* focuses next visible client, arg is ignored  */
 | 
			
		||||
extern void focusprev(Arg *arg);		/* focuses previous visible client, arg is ignored */
 | 
			
		||||
extern void incnmaster(Arg *arg);		/* increments nmaster with arg's index value */
 | 
			
		||||
extern void initlayouts(void);			/* initialize layout array */
 | 
			
		||||
extern Client *nexttiled(Client *c);		/* returns tiled successor of c */
 | 
			
		||||
extern void resizemaster(Arg *arg);		/* resizes the master percent with arg's index value */
 | 
			
		||||
extern void restack(void);			/* restores z layers of all clients */
 | 
			
		||||
extern void setlayout(Arg *arg);		/* sets layout, -1 toggles */
 | 
			
		||||
extern void toggleversatile(Arg *arg);		/* toggles focusesd client between versatile/and non-versatile state */
 | 
			
		||||
extern void versatile(void);			/* arranges all windows versatile */
 | 
			
		||||
 | 
			
		||||
/* main.c */
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										46
									
								
								layout.c
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								layout.c
									
									
									
									
									
								
							@ -68,6 +68,38 @@ LAYOUTS
 | 
			
		||||
 | 
			
		||||
/* extern */
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
focusnext(Arg *arg) {
 | 
			
		||||
	Client *c;
 | 
			
		||||
   
 | 
			
		||||
	if(!sel)
 | 
			
		||||
		return;
 | 
			
		||||
	for(c = sel->next; c && !isvisible(c); c = c->next);
 | 
			
		||||
	if(!c)
 | 
			
		||||
		for(c = clients; c && !isvisible(c); c = c->next);
 | 
			
		||||
	if(c) {
 | 
			
		||||
		focus(c);
 | 
			
		||||
		restack();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
focusprev(Arg *arg) {
 | 
			
		||||
	Client *c;
 | 
			
		||||
 | 
			
		||||
	if(!sel)
 | 
			
		||||
		return;
 | 
			
		||||
	for(c = sel->prev; c && !isvisible(c); c = c->prev);
 | 
			
		||||
	if(!c) {
 | 
			
		||||
		for(c = clients; c && c->next; c = c->next);
 | 
			
		||||
		for(; c && !isvisible(c); c = c->prev);
 | 
			
		||||
	}
 | 
			
		||||
	if(c) {
 | 
			
		||||
		focus(c);
 | 
			
		||||
		restack();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
incnmaster(Arg *arg) {
 | 
			
		||||
	if((lt->arrange != tile) || (nmaster + arg->i < 1)
 | 
			
		||||
@ -93,6 +125,12 @@ initlayouts(void) {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Client *
 | 
			
		||||
nexttiled(Client *c) {
 | 
			
		||||
	for(; c && (c->isversatile || !isvisible(c)); c = c->next);
 | 
			
		||||
	return c;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
resizemaster(Arg *arg) {
 | 
			
		||||
	if(lt->arrange != tile)
 | 
			
		||||
@ -153,14 +191,6 @@ setlayout(Arg *arg) {
 | 
			
		||||
		drawstatus();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
toggleversatile(Arg *arg) {
 | 
			
		||||
	if(!sel || lt->arrange == versatile)
 | 
			
		||||
		return;
 | 
			
		||||
	sel->isversatile = !sel->isversatile;
 | 
			
		||||
	lt->arrange();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
versatile(void) {
 | 
			
		||||
	Client *c;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user