tapplied Ph's seltags-simplification with some modifications - dwm - [fork] cus… | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit c05962512840e181356750fd2061f8430d7193ed | |
parent 874837f653433315bd2733823a0a1efe6f76b373 | |
Author: anselm@anselm1 <unknown> | |
Date: Sun, 20 Apr 2008 18:35:11 +0100 | |
applied Ph's seltags-simplification with some modifications | |
Diffstat: | |
M dwm.c | 23 ++++++++++------------- | |
1 file changed, 10 insertions(+), 13 deletions(-) | |
--- | |
diff --git a/dwm.c b/dwm.c | |
t@@ -214,6 +214,7 @@ char stext[256], buf[256]; | |
int screen, sx, sy, sw, sh; | |
int (*xerrorxlib)(Display *, XErrorEvent *); | |
int bx, by, bw, bh, blw, bgw, mx, my, mw, mh, mox, moy, mow, moh, tx, ty, tw, … | |
+int viewtags_set = 0; | |
double mfact; | |
unsigned int numlockmask = 0; | |
void (*handler[LASTEvent]) (XEvent *) = { | |
t@@ -233,8 +234,8 @@ void (*handler[LASTEvent]) (XEvent *) = { | |
Atom wmatom[WMLast], netatom[NetLast]; | |
Bool otherwm, readin; | |
Bool running = True; | |
-Bool *prevtags; | |
Bool *seltags; | |
+Bool *viewtags[2]; | |
Client *clients = NULL; | |
Client *sel = NULL; | |
Client *stack = NULL; | |
t@@ -246,7 +247,6 @@ Window root, barwin; | |
/* configuration, allows nested code to access above variables */ | |
#include "config.h" | |
#define TAGSZ (LENGTH(tags) * sizeof(Bool)) | |
-Bool tmp[LENGTH(tags)]; | |
Layout *lt = layouts; | |
Geom *geom = geoms; | |
t@@ -1158,11 +1158,10 @@ quit(const char *arg) { | |
void | |
reapply(const char *arg) { | |
- static Bool zerotags[LENGTH(tags)] = { 0 }; | |
Client *c; | |
for(c = clients; c; c = c->next) { | |
- memcpy(c->tags, zerotags, sizeof zerotags); | |
+ memset(c->tags, 0, TAGSZ); | |
applyrules(c); | |
} | |
arrange(); | |
t@@ -1506,9 +1505,10 @@ setup(void) { | |
XSetFont(dpy, dc.gc, dc.font.xfont->fid); | |
/* init tags */ | |
- seltags = emallocz(TAGSZ); | |
- prevtags = emallocz(TAGSZ); | |
- seltags[0] = prevtags[0] = True; | |
+ viewtags[0] = emallocz(TAGSZ); | |
+ viewtags[1] = emallocz(TAGSZ); | |
+ viewtags[0][0] = viewtags[1][0] = True; | |
+ seltags = viewtags[0]; | |
/* init bar */ | |
for(blw = i = 0; LENGTH(layouts) > 1 && i < LENGTH(layouts); i++) { | |
t@@ -1828,9 +1828,9 @@ updatewmhints(Client *c) { | |
} | |
} | |
- | |
void | |
view(const char *arg) { | |
+ Bool tmp[LENGTH(tags)]; | |
unsigned int i; | |
for(i = 0; i < LENGTH(tags); i++) | |
t@@ -1838,7 +1838,7 @@ view(const char *arg) { | |
tmp[idxoftag(arg)] = True; | |
if(memcmp(seltags, tmp, TAGSZ) != 0) { | |
- memcpy(prevtags, seltags, TAGSZ); | |
+ seltags = viewtags[viewtags_set ^= 1]; /* toggle tagset */ | |
memcpy(seltags, tmp, TAGSZ); | |
arrange(); | |
} | |
t@@ -1846,10 +1846,7 @@ view(const char *arg) { | |
void | |
viewprevtag(const char *arg) { | |
- | |
- memcpy(tmp, seltags, TAGSZ); | |
- memcpy(seltags, prevtags, TAGSZ); | |
- memcpy(prevtags, tmp, TAGSZ); | |
+ seltags = viewtags[viewtags_set ^= 1]; /* toggle tagset */ | |
arrange(); | |
} | |