summaryrefslogtreecommitdiff
path: root/dwm.c
diff options
context:
space:
mode:
authorAnselm R Garbe <garbeam@gmail.com>2008-02-11 20:48:22 +0000
committerAnselm R Garbe <garbeam@gmail.com>2008-02-11 20:48:22 +0000
commit4adfdc9d95b2ec6603deab153697e2296e3c9c97 (patch)
tree9a1bec9ea2b079ef0e2210a7e2834ceb40e0507f /dwm.c
parentc619363d1580d5913b00d8b7d0415da5917b8060 (diff)
applied dme's patch to prevent changing prevtags if nothing actually changed
Diffstat (limited to 'dwm.c')
-rw-r--r--dwm.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/dwm.c b/dwm.c
index 699aed1d..020adb3b 100644
--- a/dwm.c
+++ b/dwm.c
@@ -1976,14 +1976,17 @@ xerrorstart(Display *dsply, XErrorEvent *ee) {
void
view(const char *arg) {
unsigned int i;
-
+ Bool tmp[LENGTH(tags)];
Monitor *m = &monitors[monitorat()];
- memcpy(m->prevtags, m->seltags, sizeof initags);
for(i = 0; i < LENGTH(tags); i++)
- m->seltags[i] = (NULL == arg);
- m->seltags[idxoftag(arg)] = True;
- arrange();
+ tmp[i] = (NULL == arg);
+ tmp[idxoftag(arg)] = True;
+ if(memcmp(m->seltags, tmp, sizeof initags) != 0) {
+ memcpy(m->prevtags, m->seltags, sizeof initags);
+ memcpy(m->seltags, tmp, sizeof initags);
+ arrange();
+ }
}
void