Introduction
Introduction Statistics Contact Development Disclaimer Help
tmade arrange() Monitor-dependent as well, fixed the movemouse/resizemouse issu…
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit dd218235369d12ad9d71269db11db05c464a09e0
parent 9cb9c32ee7d76554cfc44ad8801d70cef9fe25e9
Author: Anselm R Garbe <[email protected]>
Date: Fri, 22 Feb 2008 10:03:42 +0000
made arrange() Monitor-dependent as well, fixed the movemouse/resizemouse issues
Diffstat:
M dwm.c | 52 +++++++++++++++++------------…
1 file changed, 28 insertions(+), 24 deletions(-)
---
diff --git a/dwm.c b/dwm.c
t@@ -130,7 +130,7 @@ struct Monitor {
/* function declarations */
void applyrules(Client *c);
-void arrange(void);
+void arrange(Monitor *m);
void attach(Client *c);
void attachstack(Client *c);
void ban(Client *c);
t@@ -299,7 +299,8 @@ applyrules(Client *c) {
}
void
-arrange(void) {
+arrange(Monitor *m) {
+ unsigned int i;
Client *c;
for(c = clients; c; c = c->next)
t@@ -308,9 +309,13 @@ arrange(void) {
else
ban(c);
- selmonitor->layout->arrange(selmonitor);
+ if(m)
+ m->layout->arrange(m);
+ else
+ for(i = 0; i < mcount; i++)
+ m->layout->arrange(&monitors[i]);
focus(NULL);
- restack(selmonitor);
+ restack(m);
}
void
t@@ -485,7 +490,7 @@ configurenotify(XEvent *e) {
dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(root, scre…
XResizeWindow(dpy, m->barwin, m->sw, bh);
updatebarpos(m);
- arrange();
+ arrange(m);
}
}
t@@ -1078,7 +1083,7 @@ manage(Window w, XWindowAttributes *wa) {
applyrules(c);
- m = selmonitor;
+ m = c->monitor;
c->x = wa->x + m->sx;
c->y = wa->y + m->sy;
t@@ -1122,7 +1127,7 @@ manage(Window w, XWindowAttributes *wa) {
ban(c);
XMapWindow(dpy, c->win);
setclientstate(c, NormalState);
- arrange();
+ arrange(m);
}
void
t@@ -1201,7 +1206,7 @@ movemouse(Client *c) {
ny = m->way;
else if(abs((m->way + m->wah) - (ny + c->h + 2 * c->bo…
ny = m->way + m->wah - c->h - 2 * c->border;
- if((m->layout->arrange != floating) && (abs(nx - c->x)…
+ if(!c->isfloating && (m->layout->arrange != floating) …
togglefloating(NULL);
if((m->layout->arrange == floating) || c->isfloating)
resize(c, nx, ny, c->w, c->h, False);
t@@ -1230,7 +1235,7 @@ propertynotify(XEvent *e) {
case XA_WM_TRANSIENT_FOR:
XGetTransientForHint(dpy, c->win, &trans);
if(!c->isfloating && (c->isfloating = (getclient(trans…
- arrange();
+ arrange(c->monitor);
break;
case XA_WM_NORMAL_HINTS:
updatesizehints(c);
t@@ -1262,7 +1267,7 @@ reapply(const char *arg) {
memcpy(c->tags, zerotags, sizeof zerotags);
applyrules(c);
}
- arrange();
+ arrange(NULL);
}
void
t@@ -1366,7 +1371,7 @@ resizemouse(Client *c) {
nw = 1;
if((nh = ev.xmotion.y - ocy - 2 * c->border + 1) <= 0)
nh = 1;
- if((m->layout->arrange != floating) && (abs(nw - c->w)…
+ if(!c->isfloating && (m->layout->arrange != floating) …
togglefloating(NULL);
if((m->layout->arrange == floating) || c->isfloating)
resize(c, c->x, c->y, nw, nh, True);
t@@ -1518,7 +1523,7 @@ setlayout(const char *arg) {
m->layout = &layouts[i];
}
if(sel)
- arrange();
+ arrange(m);
else
drawbar(m);
}
t@@ -1544,7 +1549,7 @@ setmwfact(const char *arg) {
else if(m->mwfact > 0.9)
m->mwfact = 0.9;
}
- arrange();
+ arrange(m);
}
void
t@@ -1697,7 +1702,7 @@ tag(const char *arg) {
for(i = 0; i < LENGTH(tags); i++)
sel->tags[i] = (NULL == arg);
sel->tags[idxoftag(arg)] = True;
- arrange();
+ arrange(sel->monitor);
}
unsigned int
t@@ -1769,7 +1774,7 @@ togglebar(const char *arg) {
else
bpos = BarOff;
updatebarpos(monitorat());
- arrange();
+ arrange(monitorat());
}
void
t@@ -1779,7 +1784,7 @@ togglefloating(const char *arg) {
sel->isfloating = !sel->isfloating;
if(sel->isfloating)
resize(sel, sel->x, sel->y, sel->w, sel->h, True);
- arrange();
+ arrange(sel->monitor);
}
void
t@@ -1793,13 +1798,12 @@ toggletag(const char *arg) {
for(j = 0; j < LENGTH(tags) && !sel->tags[j]; j++);
if(j == LENGTH(tags))
sel->tags[i] = True; /* at least one tag must be enabled */
- arrange();
+ arrange(sel->monitor);
}
void
toggleview(const char *arg) {
unsigned int i, j;
-
Monitor *m = monitorat();
i = idxoftag(arg);
t@@ -1807,7 +1811,7 @@ toggleview(const char *arg) {
for(j = 0; j < LENGTH(tags) && !m->seltags[j]; j++);
if(j == LENGTH(tags))
m->seltags[i] = True; /* at least one tag must be viewed */
- arrange();
+ arrange(m);
}
void
t@@ -1838,7 +1842,7 @@ unmanage(Client *c) {
XSync(dpy, False);
XSetErrorHandler(xerror);
XUngrabServer(dpy);
- arrange();
+ arrange(NULL);
}
void
t@@ -1988,7 +1992,7 @@ view(const char *arg) {
if(memcmp(m->seltags, tmp, sizeof initags) != 0) {
memcpy(m->prevtags, m->seltags, sizeof initags);
memcpy(m->seltags, tmp, sizeof initags);
- arrange();
+ arrange(m);
}
}
t@@ -2001,7 +2005,7 @@ viewprevtag(const char *arg) {
memcpy(tmp, m->seltags, sizeof initags);
memcpy(m->seltags, m->prevtags, sizeof initags);
memcpy(m->prevtags, tmp, sizeof initags);
- arrange();
+ arrange(m);
}
void
t@@ -2016,7 +2020,7 @@ zoom(const char *arg) {
detach(c);
attach(c);
focus(c);
- arrange();
+ arrange(c->monitor);
}
void
t@@ -2035,7 +2039,7 @@ movetomonitor(const char *arg) {
memcpy(sel->tags, sel->monitor->seltags, sizeof initags);
resize(sel, sel->monitor->wax, sel->monitor->way, sel->w, sel->h, True…
- arrange();
+ arrange(sel->monitor);
}
void
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.