some more polishing/consistency changes

master
anselm@anselm1 2007-12-22 14:40:44 +00:00
parent 62b18fb9d4
commit a62630ae92
1 changed files with 39 additions and 40 deletions

79
dwm.c
View File

@ -198,7 +198,7 @@ void toggleview(const char *arg);
void unban(Client *c);
void unmanage(Client *c);
void unmapnotify(XEvent *e);
void updatebarpos(Monitor *s);
void updatebarpos(Monitor *m);
void updatesizehints(Client *c);
void updatetitle(Client *c);
void view(const char *arg);
@ -336,12 +336,12 @@ buttonpress(XEvent *e) {
Client *c;
XButtonPressedEvent *ev = &e->xbutton;
Monitor s = monitors[monitorat(-1, -1)];
Monitor *m = &monitors[monitorat(-1, -1)];
if(ev->window == s.barwin) {
if(ev->window == m->barwin) {
x = 0;
for(i = 0; i < LENGTH(tags); i++) {
x += textw(&s, tags[i]);
x += textw(m, tags[i]);
if(ev->x < x) {
if(ev->button == Button1) {
if(ev->state & MODKEY)
@ -366,20 +366,20 @@ buttonpress(XEvent *e) {
if(CLEANMASK(ev->state) != MODKEY)
return;
if(ev->button == Button1) {
if((s.layout->arrange == floating) || c->isfloating)
if((m->layout->arrange == floating) || c->isfloating)
restack();
else
togglefloating(NULL);
movemouse(c);
}
else if(ev->button == Button2) {
if((floating != s.layout->arrange) && c->isfloating)
if((floating != m->layout->arrange) && c->isfloating)
togglefloating(NULL);
else
zoom(NULL);
}
else if(ev->button == Button3 && !c->isfixed) {
if((floating == s.layout->arrange) || c->isfloating)
if((floating == m->layout->arrange) || c->isfloating)
restack();
else
togglefloating(NULL);
@ -565,20 +565,20 @@ detachstack(Client *c) {
void
drawbar(void) {
int i, x, s;
int i, j, x;
for(s = 0; s < mcount; ++s) {
Monitor *m = &monitors[s];
for(i = 0; i < mcount; i++) {
Monitor *m = &monitors[i];
m->dc.x = 0;
for(i = 0; i < LENGTH(tags); i++) {
m->dc.w = textw(m, tags[i]);
if(m->seltags[i]) {
drawtext(m, tags[i], m->dc.sel);
drawsquare(m, sel && sel->tags[i] && sel->monitor == selmonitor, isoccupied(m, i), m->dc.sel);
for(j = 0; j < LENGTH(tags); j++) {
m->dc.w = textw(m, tags[j]);
if(m->seltags[j]) {
drawtext(m, tags[j], m->dc.sel);
drawsquare(m, sel && sel->tags[j] && sel->monitor == selmonitor, isoccupied(m, j), m->dc.sel);
}
else {
drawtext(m, tags[i], m->dc.norm);
drawsquare(m, sel && sel->tags[i] && sel->monitor == selmonitor, isoccupied(m, i), m->dc.norm);
drawtext(m, tags[j], m->dc.norm);
drawsquare(m, sel && sel->tags[j] && sel->monitor == selmonitor, isoccupied(m, j), m->dc.norm);
}
m->dc.x += m->dc.w;
}
@ -1336,10 +1336,10 @@ resizemouse(Client *c) {
void
restack(void) {
unsigned int i;
Client *c;
XEvent ev;
XWindowChanges wc;
int s;
drawbar();
if(!sel)
@ -1353,8 +1353,8 @@ restack(void) {
XConfigureWindow(dpy, sel->win, CWSibling | CWStackMode, &wc);
wc.sibling = sel->win;
}
for(s = 0; s < mcount; s++) {
for(c = nexttiled(clients, &monitors[s]); c; c = nexttiled(c->next, &monitors[s])) {
for(i = 0; i < mcount; i++) {
for(c = nexttiled(clients, &monitors[i]); c; c = nexttiled(c->next, &monitors[i])) {
if(c == sel)
continue;
XConfigureWindow(dpy, c->win, CWSibling | CWStackMode, &wc);
@ -1676,39 +1676,38 @@ textw(Monitor *m, const char *text) {
void
tile(void) {
unsigned int i, n, nx, ny, nw, nh, mw, th;
int s;
unsigned int i, j, n, nx, ny, nw, nh, mw, th;
Client *c, *mc;
domwfact = dozoom = True;
nw = 0; /* gcc stupidity requires this */
for (s = 0; s < mcount; s++) {
Monitor *m = &monitors[s];
for (i = 0; i < mcount; i++) {
Monitor *m = &monitors[i];
for(n = 0, c = nexttiled(clients, m); c; c = nexttiled(c->next, m))
n++;
for(i = 0, c = mc = nexttiled(clients, m); c; c = nexttiled(c->next, m)) {
for(j = 0, c = mc = nexttiled(clients, m); c; c = nexttiled(c->next, m)) {
/* 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(i == 0) { /* master */
if(j == 0) { /* master */
nx = m->wax;
ny = m->way;
nw = mw - 2 * c->border;
nh = m->wah - 2 * c->border;
}
else { /* tile window */
if(i == 1) {
if(j == 1) {
ny = m->way;
nx += mc->w + 2 * mc->border;
nw = m->waw - mw - 2 * c->border;
}
if(i + 1 == n) /* remainder */
if(j + 1 == n) /* remainder */
nh = (m->way + m->wah) - ny - 2 * c->border;
else
nh = th - 2 * c->border;
@ -1720,7 +1719,7 @@ tile(void) {
if(n > 1 && th != m->wah)
ny = c->y + c->h + 2 * c->border;
i++;
j++;
}
}
}
@ -1813,25 +1812,25 @@ unmapnotify(XEvent *e) {
}
void
updatebarpos(Monitor *s) {
updatebarpos(Monitor *m) {
XEvent ev;
s->wax = s->sx;
s->way = s->sy;
s->wah = s->sh;
s->waw = s->sw;
m->wax = m->sx;
m->way = m->sy;
m->wah = m->sh;
m->waw = m->sw;
switch(bpos) {
default:
s->wah -= bh;
s->way += bh;
XMoveWindow(dpy, s->barwin, s->sx, s->sy);
m->wah -= bh;
m->way += bh;
XMoveWindow(dpy, m->barwin, m->sx, m->sy);
break;
case BarBot:
s->wah -= bh;
XMoveWindow(dpy, s->barwin, s->sx, s->sy + s->wah);
m->wah -= bh;
XMoveWindow(dpy, m->barwin, m->sx, m->sy + m->wah);
break;
case BarOff:
XMoveWindow(dpy, s->barwin, s->sx, s->sy - bh);
XMoveWindow(dpy, m->barwin, m->sx, m->sy - bh);
break;
}
XSync(dpy, False);