JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
applied Ph's patch regarding geom and lt initialization
[dwm.git] / dwm.c
diff --git a/dwm.c b/dwm.c
index e1d3b0a..c174994 100644 (file)
--- 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((lt->isfloating || !c->floating) &&  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;
 }
+