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};
XDestroyWindow(dpy, barwin);
XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
XSync(dpy, False);
+ free(seltag);
}
static void
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);
/*
* 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)
|| (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