tapplied Mate's patch, added Mate to LICENSE - dwm - [fork] customized build of… | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit a72dc2fec277bb517adcb98edfb18f469333d980 | |
parent 8b17f5517b12a84a52e9073ace4c8bb9eb6bb941 | |
Author: Anselm R Garbe <[email protected]> | |
Date: Mon, 6 Jul 2009 20:12:47 +0100 | |
applied Mate's patch, added Mate to LICENSE | |
Diffstat: | |
M LICENSE | 1 + | |
M dwm.c | 40 ++++++++++++++++-------------… | |
2 files changed, 21 insertions(+), 20 deletions(-) | |
--- | |
diff --git a/LICENSE b/LICENSE | |
t@@ -10,6 +10,7 @@ MIT/X Consortium License | |
© 2007-2008 Peter Hartlich <sgkkr at hartlich dot com> | |
© 2008 Martin Hurton <martin dot hurton at gmail dot com> | |
© 2008 Neale Pickett <neale dot woozle dot org> | |
+© 2009 Mate Nagy <[email protected]> | |
Permission is hereby granted, free of charge, to any person obtaining a | |
copy of this software and associated documentation files (the "Software"), | |
diff --git a/dwm.c b/dwm.c | |
t@@ -136,6 +136,7 @@ struct Monitor { | |
Client *stack; | |
Monitor *next; | |
Window barwin; | |
+ Layout *lt[2]; | |
}; | |
typedef struct { | |
t@@ -261,7 +262,6 @@ static Bool running = True; | |
static Cursor cursor[CurLast]; | |
static Display *dpy; | |
static DC dc; | |
-static Layout *lt[] = { NULL, NULL }; | |
static Monitor *mons = NULL, *selmon = NULL; | |
static Window root; | |
t@@ -376,8 +376,8 @@ arrange(void) { | |
showhide(m->stack); | |
focus(NULL); | |
for(m = mons; m; m = m->next) { | |
- if(lt[m->sellt]->arrange) | |
- lt[m->sellt]->arrange(m); | |
+ if(m->lt[m->sellt]->arrange) | |
+ m->lt[m->sellt]->arrange(m); | |
restack(m); | |
} | |
} | |
t@@ -456,7 +456,7 @@ cleanup(void) { | |
Monitor *m; | |
view(&a); | |
- lt[selmon->sellt] = &foo; | |
+ selmon->lt[selmon->sellt] = &foo; | |
for(m = mons; m; m = m->next) | |
while(m->stack) | |
unmanage(m->stack); | |
t@@ -547,7 +547,7 @@ configurerequest(XEvent *e) { | |
if((c = wintoclient(ev->window))) { | |
if(ev->value_mask & CWBorderWidth) | |
c->bw = ev->border_width; | |
- else if(c->isfloating || !lt[selmon->sellt]->arrange) { | |
+ else if(c->isfloating || !selmon->lt[selmon->sellt]->arrange) { | |
m = c->mon; | |
if(ev->value_mask & CWX) | |
c->x = m->mx + ev->x; | |
t@@ -668,7 +668,7 @@ drawbar(Monitor *m) { | |
} | |
if(blw > 0) { | |
dc.w = blw; | |
- drawtext(lt[m->sellt]->symbol, dc.norm, False); | |
+ drawtext(m->lt[m->sellt]->symbol, dc.norm, False); | |
x = dc.x + dc.w; | |
} | |
else | |
t@@ -1170,11 +1170,11 @@ movemouse(const Arg *arg) { | |
ny = selmon->wy; | |
else if(abs((selmon->wy + selmon->wh) - (ny + … | |
ny = selmon->wy + selmon->wh - HEIGHT(… | |
- if(!c->isfloating && lt[selmon->sellt]->arrange | |
+ if(!c->isfloating && selmon->lt[selmon->sellt]… | |
&& (abs(nx - c->x) > snap ||… | |
togglefloating(NULL); | |
} | |
- if(!lt[selmon->sellt]->arrange || c->isfloating) | |
+ if(!selmon->lt[selmon->sellt]->arrange || c->isfloatin… | |
resize(c, nx, ny, c->w, c->h, True); | |
break; | |
} | |
t@@ -1289,11 +1289,11 @@ resizemouse(const Arg *arg) { | |
nh = MAX(ev.xmotion.y - ocy - 2 * c->bw + 1, 1); | |
if(snap && nw >= selmon->wx && nw <= selmon->wx + selm… | |
&& nh >= selmon->wy && nh <= selmon->wy + selm… | |
- if(!c->isfloating && lt[selmon->sellt]->arrange | |
+ if(!c->isfloating && selmon->lt[selmon->sellt]… | |
&& (abs(nw - c->w) > snap || abs(nh - c->h)… | |
togglefloating(NULL); | |
} | |
- if(!lt[selmon->sellt]->arrange || c->isfloating) | |
+ if(!selmon->lt[selmon->sellt]->arrange || c->isfloatin… | |
resize(c, c->x, c->y, nw, nh, True); | |
break; | |
} | |
t@@ -1318,9 +1318,9 @@ restack(Monitor *m) { | |
drawbars(); | |
if(!m->sel) | |
return; | |
- if(m->sel->isfloating || !lt[m->sellt]->arrange) | |
+ if(m->sel->isfloating || !m->lt[m->sellt]->arrange) | |
XRaiseWindow(dpy, m->sel->win); | |
- if(lt[m->sellt]->arrange) { | |
+ if(m->lt[m->sellt]->arrange) { | |
wc.stack_mode = Below; | |
wc.sibling = m->barwin; | |
for(c = m->stack; c; c = c->snext) | |
t@@ -1396,10 +1396,10 @@ setclientstate(Client *c, long state) { | |
void | |
setlayout(const Arg *arg) { | |
- if(!arg || !arg->v || arg->v != lt[selmon->sellt]) | |
+ if(!arg || !arg->v || arg->v != selmon->lt[selmon->sellt]) | |
selmon->sellt ^= 1; | |
if(arg && arg->v) | |
- lt[selmon->sellt] = (Layout *)arg->v; | |
+ selmon->lt[selmon->sellt] = (Layout *)arg->v; | |
if(selmon->sel) | |
arrange(); | |
else | |
t@@ -1411,7 +1411,7 @@ void | |
setmfact(const Arg *arg) { | |
float f; | |
- if(!arg || !lt[selmon->sellt]->arrange) | |
+ if(!arg || !selmon->lt[selmon->sellt]->arrange) | |
return; | |
f = arg->f < 1.0 ? arg->f + selmon->mfact : arg->f - 1.0; | |
if(f < 0.1 || f > 0.9) | |
t@@ -1433,8 +1433,6 @@ setup(void) { | |
sw = DisplayWidth(dpy, screen); | |
sh = DisplayHeight(dpy, screen); | |
bh = dc.h = dc.font.height + 2; | |
- lt[0] = &layouts[0]; | |
- lt[1] = &layouts[1 % LENGTH(layouts)]; | |
updategeom(); | |
/* init atoms */ | |
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); | |
t@@ -1484,7 +1482,7 @@ showhide(Client *c) { | |
return; | |
if(ISVISIBLE(c)) { /* show clients top down */ | |
XMoveWindow(dpy, c->win, c->x, c->y); | |
- if(!lt[c->mon->sellt]->arrange || c->isfloating) | |
+ if(!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) | |
resize(c, c->x, c->y, c->w, c->h, False); | |
showhide(c->snext); | |
} | |
t@@ -1730,6 +1728,8 @@ updategeom(void) { | |
m->mfact = mfact; | |
m->showbar = SHOWBAR; | |
m->topbar = TOPBAR; | |
+ m->lt[0] = &layouts[0]; | |
+ m->lt[1] = &layouts[1 % LENGTH(layouts)]; | |
updatebarpos(m); | |
} | |
/* reassign left over clients of disappeared monitors */ | |
t@@ -1916,8 +1916,8 @@ void | |
zoom(const Arg *arg) { | |
Client *c = selmon->sel; | |
- if(!lt[selmon->sellt]->arrange | |
- || lt[selmon->sellt]->arrange == monocle | |
+ if(!selmon->lt[selmon->sellt]->arrange | |
+ || selmon->lt[selmon->sellt]->arrange == monocle | |
|| (selmon->sel && selmon->sel->isfloating)) | |
return; | |
if(c == nexttiled(selmon->clients)) |