X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/c619363d1580d5913b00d8b7d0415da5917b8060..954db46bac481fd3f514f7af50d2af7e73fb9115:/dwm.c?ds=sidebyside diff --git a/dwm.c b/dwm.c index 699aed1..79a3a33 100644 --- a/dwm.c +++ b/dwm.c @@ -374,7 +374,8 @@ buttonpress(XEvent *e) { else if(ev->button == Button2) { if((floating != m->layout->arrange) && c->isfloating) togglefloating(NULL); - zoom(NULL); + else + zoom(NULL); } else if(ev->button == Button3 && !c->isfixed) { restack(); @@ -1723,12 +1724,13 @@ tile(void) { for(n = 0, c = nexttiled(clients, i); c; c = nexttiled(c->next, i)) n++; + /* window geoms */ + mw = (n == 1) ? m->waw : m->mwfact * m->waw; + th = (n > 1) ? m->wah / (n - 1) : 0; + if(n > 1 && th < bh) + th = m->wah; + for(j = 0, c = mc = nexttiled(clients, i); c; c = nexttiled(c->next, i)) { - /* window geoms */ - mw = (n == 1) ? m->waw : m->mwfact * m->waw; - th = (n > 1) ? m->wah / (n - 1) : 0; - if(n > 1 && th < bh) - th = m->wah; if(j == 0) { /* master */ nx = m->wax; ny = m->way; @@ -1976,14 +1978,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