X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=dwm.c;h=c1749941faf2df7d110804a3c76cadb0dcfee2e7;hp=9acf30da47b46f70b38d2c09c09a9696c6cc76ec;hb=5fa559dbfc6238a911c210ae4124586c6886df23;hpb=0e21794e02069ae71a1e70f8d0c2c22c4d1050bc diff --git a/dwm.c b/dwm.c index 9acf30d..c174994 100644 --- a/dwm.c +++ b/dwm.c @@ -239,14 +239,14 @@ Client *stack = NULL; Cursor cursor[CurLast]; Display *dpy; DC dc = {0}; -Geom *geom = NULL; -Layout *lt = NULL; Window root, barwin; /* configuration, allows nested code to access above variables */ #include "config.h" #define TAGSZ (LENGTH(tags) * sizeof(Bool)) -static Bool tmp[LENGTH(tags)]; +Bool tmp[LENGTH(tags)]; +Layout *lt = layouts; +Geom *geom = geoms; /* function implementations */ @@ -261,10 +261,9 @@ applyrules(Client *c) { XGetClassHint(dpy, c->win, &ch); for(i = 0; i < LENGTH(rules); i++) { r = &rules[i]; - if((r->title && strstr(c->name, r->title)) - || (ch.res_class && r->class && strstr(ch.res_class, r->class)) - || (ch.res_name && r->instance && strstr(ch.res_name, r->instance))) - { + if((!r->title || strstr(c->name, r->title)) + && (!r->class || (ch.res_class && strstr(ch.res_class, r->class))) + && (!r->instance || (ch.res_name && strstr(ch.res_name, r->instance)))) { c->isfloating = r->isfloating; if(r->tag) { c->tags[idxoftag(r->tag)] = True; @@ -1068,7 +1067,7 @@ monocle(void) { Client *c; for(c = clients; c; c = c->next) - if(isvisible(c)) + if((lt->isfloating || !c->isfloating) && isvisible(c)) resize(c, mox, moy, mow - 2 * c->bw, moh - 2 * c->bw, RESIZEHINTS); } @@ -1483,7 +1482,6 @@ setup(void) { sh = DisplayHeight(dpy, screen); bh = dc.font.height + 2; mfact = MFACT; - geom = &geoms[0]; geom->apply(); /* init atoms */ @@ -1519,9 +1517,6 @@ setup(void) { prevtags = emallocz(TAGSZ); seltags[0] = prevtags[0] = True; - /* init layouts */ - lt = &layouts[0]; - /* init bar */ for(blw = i = 0; LENGTH(layouts) > 1 && i < LENGTH(layouts); i++) { w = textw(layouts[i].symbol); @@ -1934,3 +1929,4 @@ main(int argc, char *argv[]) { XCloseDisplay(dpy); return 0; } +