JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
applied Christof Musik's multihead patch for a pathologic cornercase
[dwm.git] / main.c
diff --git a/main.c b/main.c
index d2da0c1..f63a697 100644 (file)
--- a/main.c
+++ b/main.c
 
 char stext[1024];
 Bool *seltag;
-int screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
-unsigned int ntags, numlockmask, modew;
+int bx, by, bw, bh, bmw, mw, screen, sx, sy, sw, sh;
+unsigned int ntags, numlockmask;
 Atom wmatom[WMLast], netatom[NetLast];
 Bool running = True;
 Bool issel = True;
+Bool maximized = False;
 Client *clients = NULL;
 Client *sel = NULL;
+Client *stack = NULL;
 Cursor cursor[CurLast];
 Display *dpy;
 DC dc = {0};
@@ -54,6 +56,7 @@ cleanup()
        XDestroyWindow(dpy, barwin);
        XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
        XSync(dpy, False);
+       free(seltag);
 }
 
 static void
@@ -129,7 +132,7 @@ setup()
        dc.status[ColFG] = getcolor(STATUSFGCOLOR);
        setfont(FONT);
 
-       modew = textw(FLOATSYMBOL) > textw(TILESYMBOL) ? textw(FLOATSYMBOL) : textw(TILESYMBOL);
+       bmw = textw(FLOATSYMBOL) > textw(TILESYMBOL) ? textw(FLOATSYMBOL) : textw(TILESYMBOL);
        sx = sy = 0;
        sw = DisplayWidth(dpy, screen);
        sh = DisplayHeight(dpy, screen);
@@ -211,7 +214,7 @@ quit(Arg *arg)
 /*
  * There's no way to check accesses to destroyed windows, thus those cases are
  * ignored (especially on UnmapNotify's).  Other types of errors call Xlibs
- * default error handler, which calls exit().
+ * default error handler, which may call exit.
  */
 int
 xerror(Display *dpy, XErrorEvent *ee)
@@ -222,11 +225,12 @@ xerror(Display *dpy, XErrorEvent *ee)
        || (ee->request_code == X_PolyFillRectangle && ee->error_code == BadDrawable)
        || (ee->request_code == X_PolySegment && ee->error_code == BadDrawable)
        || (ee->request_code == X_ConfigureWindow && ee->error_code == BadMatch)
-       || (ee->request_code == X_GrabKey && ee->error_code == BadAccess))
+       || (ee->request_code == X_GrabKey && ee->error_code == BadAccess)
+       || (ee->request_code == X_CopyArea && ee->error_code == BadDrawable))
                return 0;
        fprintf(stderr, "dwm: fatal error: request code=%d, error code=%d\n",
                ee->request_code, ee->error_code);
-       return xerrorxlib(dpy, ee); /* may call exit() */
+       return xerrorxlib(dpy, ee); /* may call exit */
 }
 
 int