forked from mirror/dwm
applied Brandon MacDone's static initialization patch for seltags and Client->tags
This commit is contained in:
parent
883e09b2eb
commit
eeea4ef583
1 changed files with 21 additions and 23 deletions
44
dwm.c
44
dwm.c
|
@ -57,21 +57,6 @@ enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */
|
||||||
|
|
||||||
/* typedefs */
|
/* typedefs */
|
||||||
typedef struct Client Client;
|
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 {
|
typedef struct {
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
|
@ -195,7 +180,7 @@ char stext[256];
|
||||||
double mwfact;
|
double mwfact;
|
||||||
int screen, sx, sy, sw, sh, wax, way, waw, wah;
|
int screen, sx, sy, sw, sh, wax, way, waw, wah;
|
||||||
int (*xerrorxlib)(Display *, XErrorEvent *);
|
int (*xerrorxlib)(Display *, XErrorEvent *);
|
||||||
unsigned int bh, bpos, ntags;
|
unsigned int bh, bpos;
|
||||||
unsigned int blw = 0;
|
unsigned int blw = 0;
|
||||||
unsigned int ltidx = 0; /* default */
|
unsigned int ltidx = 0; /* default */
|
||||||
unsigned int nlayouts = 0;
|
unsigned int nlayouts = 0;
|
||||||
|
@ -218,7 +203,6 @@ void (*handler[LASTEvent]) (XEvent *) = {
|
||||||
Atom wmatom[WMLast], netatom[NetLast];
|
Atom wmatom[WMLast], netatom[NetLast];
|
||||||
Bool otherwm, readin;
|
Bool otherwm, readin;
|
||||||
Bool running = True;
|
Bool running = True;
|
||||||
Bool *seltags;
|
|
||||||
Bool selscreen = True;
|
Bool selscreen = True;
|
||||||
Client *clients = NULL;
|
Client *clients = NULL;
|
||||||
Client *sel = NULL;
|
Client *sel = NULL;
|
||||||
|
@ -232,6 +216,26 @@ Regs *regs = NULL;
|
||||||
/* configuration, allows nested code to access above variables */
|
/* configuration, allows nested code to access above variables */
|
||||||
#include "config.h"
|
#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*/
|
/* functions*/
|
||||||
void
|
void
|
||||||
applyrules(Client *c) {
|
applyrules(Client *c) {
|
||||||
|
@ -393,7 +397,6 @@ cleanup(void) {
|
||||||
XFreeCursor(dpy, cursor[CurMove]);
|
XFreeCursor(dpy, cursor[CurMove]);
|
||||||
XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
|
XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
|
||||||
XSync(dpy, False);
|
XSync(dpy, False);
|
||||||
free(seltags);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1006,7 +1009,6 @@ manage(Window w, XWindowAttributes *wa) {
|
||||||
XWindowChanges wc;
|
XWindowChanges wc;
|
||||||
|
|
||||||
c = emallocz(sizeof(Client));
|
c = emallocz(sizeof(Client));
|
||||||
c->tags = emallocz(ntags * sizeof(Bool));
|
|
||||||
c->win = w;
|
c->win = w;
|
||||||
c->x = wa->x;
|
c->x = wa->x;
|
||||||
c->y = wa->y;
|
c->y = wa->y;
|
||||||
|
@ -1467,9 +1469,6 @@ setup(void) {
|
||||||
|
|
||||||
/* init tags */
|
/* init tags */
|
||||||
compileregs();
|
compileregs();
|
||||||
ntags = sizeof tags / sizeof tags[0];
|
|
||||||
seltags = emallocz(sizeof(Bool) * ntags);
|
|
||||||
seltags[0] = True;
|
|
||||||
|
|
||||||
/* init appearance */
|
/* init appearance */
|
||||||
dc.norm[ColBorder] = getcolor(NORMBORDERCOLOR);
|
dc.norm[ColBorder] = getcolor(NORMBORDERCOLOR);
|
||||||
|
@ -1703,7 +1702,6 @@ unmanage(Client *c) {
|
||||||
focus(NULL);
|
focus(NULL);
|
||||||
XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
|
XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
|
||||||
setclientstate(c, WithdrawnState);
|
setclientstate(c, WithdrawnState);
|
||||||
free(c->tags);
|
|
||||||
free(c);
|
free(c);
|
||||||
XSync(dpy, False);
|
XSync(dpy, False);
|
||||||
XSetErrorHandler(xerror);
|
XSetErrorHandler(xerror);
|
||||||
|
|
Loading…
Reference in a new issue