changed Client->tags and Rule->tags to be Bool (I'll also try to remove the TLast enum)
This commit is contained in:
		
							parent
							
								
									5d3fd3707b
								
							
						
					
					
						commit
						8cc7f3bace
					
				
							
								
								
									
										2
									
								
								client.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								client.c
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -18,7 +18,7 @@ resizetitle(Client *c)
 | 
			
		|||
	c->tw = 0;
 | 
			
		||||
	for(i = 0; i < TLast; i++)
 | 
			
		||||
		if(c->tags[i])
 | 
			
		||||
			c->tw += textw(c->tags[i]);
 | 
			
		||||
			c->tw += textw(tags[i]);
 | 
			
		||||
	c->tw += textw(c->name);
 | 
			
		||||
	if(c->tw > c->w)
 | 
			
		||||
		c->tw = c->w + 2;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@
 | 
			
		|||
 | 
			
		||||
enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 | 
			
		||||
#define TAGS \
 | 
			
		||||
char *tags[TLast] = { \
 | 
			
		||||
const char *tags[TLast] = { \
 | 
			
		||||
	[Tfnord] = "fnord", \
 | 
			
		||||
	[Tdev] = "dev", \
 | 
			
		||||
	[Tnet] = "net", \
 | 
			
		||||
| 
						 | 
				
			
			@ -66,7 +66,7 @@ static Key key[] = { \
 | 
			
		|||
#define RULES \
 | 
			
		||||
static Rule rule[] = { \
 | 
			
		||||
	/* class:instance	tags				isfloat */ \
 | 
			
		||||
	{ "Firefox.*",		{ [Tnet] = "net" },		False }, \
 | 
			
		||||
	{ "Firefox.*",		{ [Tnet] = True },		False }, \
 | 
			
		||||
	{ "Gimp.*",		{ 0 },				True}, \
 | 
			
		||||
	{ "MPlayer.*",		{ 0 },				True}, \
 | 
			
		||||
	{ "Acroread.*",		{ 0 },				True}, \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@
 | 
			
		|||
 | 
			
		||||
enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 | 
			
		||||
#define TAGS \
 | 
			
		||||
char *tags[TLast] = { \
 | 
			
		||||
const char *tags[TLast] = { \
 | 
			
		||||
	[Tfnord] = "fnord", \
 | 
			
		||||
	[Tdev] = "dev", \
 | 
			
		||||
	[Tnet] = "net", \
 | 
			
		||||
| 
						 | 
				
			
			@ -57,6 +57,6 @@ static Key key[] = { \
 | 
			
		|||
#define RULES \
 | 
			
		||||
static Rule rule[] = { \
 | 
			
		||||
	/* class:instance	tags				isfloat */ \
 | 
			
		||||
	{ "Firefox.*",		{ [Tnet] = "net" },		False }, \
 | 
			
		||||
	{ "Firefox.*",		{ [Tnet] = True },		False }, \
 | 
			
		||||
	{ "Gimp.*",		{ 0 },				True}, \
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										8
									
								
								draw.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								draw.c
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -30,7 +30,7 @@ drawborder(void)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static unsigned int
 | 
			
		||||
textnw(char *text, unsigned int len)
 | 
			
		||||
textnw(const char *text, unsigned int len)
 | 
			
		||||
{
 | 
			
		||||
	XRectangle r;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -156,8 +156,8 @@ drawtitle(Client *c)
 | 
			
		|||
	for(i = 0; i < TLast; i++) {
 | 
			
		||||
		if(c->tags[i]) {
 | 
			
		||||
			dc.x += dc.w;
 | 
			
		||||
			dc.w = textw(c->tags[i]);
 | 
			
		||||
			drawtext(c->tags[i], !istile, True);
 | 
			
		||||
			dc.w = textw(tags[i]);
 | 
			
		||||
			drawtext(tags[i], !istile, True);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	dc.x += dc.w;
 | 
			
		||||
| 
						 | 
				
			
			@ -229,7 +229,7 @@ setfont(const char *fontstr)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
unsigned int
 | 
			
		||||
textw(char *text)
 | 
			
		||||
textw(const char *text)
 | 
			
		||||
{
 | 
			
		||||
	return textnw(text, strlen(text)) + dc.font.height;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								dwm.h
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								dwm.h
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -51,7 +51,6 @@ struct DC { /* draw context */
 | 
			
		|||
 | 
			
		||||
struct Client {
 | 
			
		||||
	char name[256];
 | 
			
		||||
	char *tags[TLast];
 | 
			
		||||
	int proto;
 | 
			
		||||
	int x, y, w, h;
 | 
			
		||||
	int tx, ty, tw, th; /* title */
 | 
			
		||||
| 
						 | 
				
			
			@ -61,13 +60,15 @@ struct Client {
 | 
			
		|||
	unsigned int border;
 | 
			
		||||
	Bool isfloat;
 | 
			
		||||
	Bool ismax;
 | 
			
		||||
	Bool tags[TLast];
 | 
			
		||||
	Client *next;
 | 
			
		||||
	Client *prev;
 | 
			
		||||
	Window win;
 | 
			
		||||
	Window title;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern char *tags[TLast], stext[1024];
 | 
			
		||||
extern const char *tags[TLast];
 | 
			
		||||
extern char stext[1024];
 | 
			
		||||
extern int tsel, screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
 | 
			
		||||
extern void (*handler[LASTEvent])(XEvent *);
 | 
			
		||||
extern void (*arrange)(Arg *);
 | 
			
		||||
| 
						 | 
				
			
			@ -104,7 +105,7 @@ extern void drawstatus();
 | 
			
		|||
extern void drawtitle(Client *c);
 | 
			
		||||
extern unsigned long getcolor(const char *colstr);
 | 
			
		||||
extern void setfont(const char *fontstr);
 | 
			
		||||
extern unsigned int textw(char *text);
 | 
			
		||||
extern unsigned int textw(const char *text);
 | 
			
		||||
 | 
			
		||||
/* event.c */
 | 
			
		||||
extern void grabkeys();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								tag.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								tag.c
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -13,7 +13,7 @@
 | 
			
		|||
 | 
			
		||||
typedef struct {
 | 
			
		||||
	const char *pattern;
 | 
			
		||||
	char *tags[TLast];
 | 
			
		||||
	Bool tags[TLast];
 | 
			
		||||
	Bool isfloat;
 | 
			
		||||
} Rule;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -30,7 +30,7 @@ appendtag(Arg *arg)
 | 
			
		|||
	if(!sel)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	sel->tags[arg->i] = tags[arg->i];
 | 
			
		||||
	sel->tags[arg->i] = True;
 | 
			
		||||
	arrange(NULL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -146,7 +146,7 @@ replacetag(Arg *arg)
 | 
			
		|||
		return;
 | 
			
		||||
 | 
			
		||||
	for(i = 0; i < TLast; i++)
 | 
			
		||||
		sel->tags[i] = NULL;
 | 
			
		||||
		sel->tags[i] = False;
 | 
			
		||||
	appendtag(arg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -171,7 +171,7 @@ settags(Client *c)
 | 
			
		|||
					for(j = 0; j < TLast; j++) {
 | 
			
		||||
						if(rule[i].tags[j])
 | 
			
		||||
							matched = True;
 | 
			
		||||
						c->tags[j] = rule[i].tags[j];
 | 
			
		||||
						c->tags[j] = True;
 | 
			
		||||
					}
 | 
			
		||||
					c->isfloat = rule[i].isfloat;
 | 
			
		||||
				}
 | 
			
		||||
| 
						 | 
				
			
			@ -184,7 +184,7 @@ settags(Client *c)
 | 
			
		|||
			XFree(ch.res_name);
 | 
			
		||||
	}
 | 
			
		||||
	if(!matched)
 | 
			
		||||
		c->tags[tsel] = tags[tsel];
 | 
			
		||||
		c->tags[tsel] = True;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user