diff options
| author | Anselm R. Garbe <garbeam@gmail.com> | 2007-10-06 19:43:15 +0200 | 
|---|---|---|
| committer | Anselm R. Garbe <garbeam@gmail.com> | 2007-10-06 19:43:15 +0200 | 
| commit | eeea4ef583a2ca3746e987bd2ecd570fd1869c2d (patch) | |
| tree | 8cd07dd4c195c9330bc35d3319ce9117a43851ab | |
| parent | 883e09b2eb8b6a42289bc5a64294df4122d90e38 (diff) | |
| download | dwm-eeea4ef583a2ca3746e987bd2ecd570fd1869c2d.tar.gz dwm-eeea4ef583a2ca3746e987bd2ecd570fd1869c2d.zip | |
applied Brandon MacDone's static initialization patch for seltags and Client->tags
Diffstat (limited to '')
| -rw-r--r-- | dwm.c | 44 | 
1 files changed, 21 insertions, 23 deletions
| @@ -57,21 +57,6 @@ enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */  /* typedefs */  typedef struct Client Client; -struct Client { -	char name[256]; -	int x, y, w, h; -	int rx, ry, rw, rh; /* revert geometry */ -	int basew, baseh, incw, inch, maxw, maxh, minw, minh; -	int minax, maxax, minay, maxay; -	long flags; -	unsigned int border, oldborder; -	Bool isbanned, isfixed, ismax, isfloating, wasfloating; -	Bool *tags; -	Client *next; -	Client *prev; -	Client *snext; -	Window win; -};  typedef struct {  	int x, y, w, h; @@ -195,7 +180,7 @@ char stext[256];  double mwfact;  int screen, sx, sy, sw, sh, wax, way, waw, wah;  int (*xerrorxlib)(Display *, XErrorEvent *); -unsigned int bh, bpos, ntags; +unsigned int bh, bpos;  unsigned int blw = 0;  unsigned int ltidx = 0; /* default */  unsigned int nlayouts = 0; @@ -218,7 +203,6 @@ void (*handler[LASTEvent]) (XEvent *) = {  Atom wmatom[WMLast], netatom[NetLast];  Bool otherwm, readin;  Bool running = True; -Bool *seltags;  Bool selscreen = True;  Client *clients = NULL;  Client *sel = NULL; @@ -232,6 +216,26 @@ Regs *regs = NULL;  /* configuration, allows nested code to access above variables */  #include "config.h" +/* Statically define the number of tags. */ +unsigned int ntags = sizeof tags / sizeof tags[0]; +Bool seltags[sizeof tags / sizeof tags[0]] = {[0] = True}; + +struct Client { +	char name[256]; +	int x, y, w, h; +	int rx, ry, rw, rh; /* revert geometry */ +	int basew, baseh, incw, inch, maxw, maxh, minw, minh; +	int minax, maxax, minay, maxay; +	long flags; +	unsigned int border, oldborder; +	Bool isbanned, isfixed, ismax, isfloating, wasfloating; +	Bool tags[sizeof tags / sizeof tags[0]]; +	Client *next; +	Client *prev; +	Client *snext; +	Window win; +}; +  /* functions*/  void  applyrules(Client *c) { @@ -393,7 +397,6 @@ cleanup(void) {  	XFreeCursor(dpy, cursor[CurMove]);  	XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);  	XSync(dpy, False); -	free(seltags);  }  void @@ -1006,7 +1009,6 @@ manage(Window w, XWindowAttributes *wa) {  	XWindowChanges wc;  	c = emallocz(sizeof(Client)); -	c->tags = emallocz(ntags * sizeof(Bool));  	c->win = w;  	c->x = wa->x;  	c->y = wa->y; @@ -1467,9 +1469,6 @@ setup(void) {  	/* init tags */  	compileregs(); -	ntags = sizeof tags / sizeof tags[0]; -	seltags = emallocz(sizeof(Bool) * ntags); -	seltags[0] = True;  	/* init appearance */  	dc.norm[ColBorder] = getcolor(NORMBORDERCOLOR); @@ -1703,7 +1702,6 @@ unmanage(Client *c) {  		focus(NULL);  	XUngrabButton(dpy, AnyButton, AnyModifier, c->win);  	setclientstate(c, WithdrawnState); -	free(c->tags);  	free(c);  	XSync(dpy, False);  	XSetErrorHandler(xerror); | 
