X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/26157e6973f240a9b5ee407b9d2d5eca9358844f..a1e9362d38d0527d482bf7bec735d3a949a24d82:/main.c diff --git a/main.c b/main.c index 9856354..f63a697 100644 --- a/main.c +++ b/main.c @@ -27,6 +27,7 @@ Bool issel = True; Bool maximized = False; Client *clients = NULL; Client *sel = NULL; +Client *stack = NULL; Cursor cursor[CurLast]; Display *dpy; DC dc = {0}; @@ -55,6 +56,7 @@ cleanup() XDestroyWindow(dpy, barwin); XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); XSync(dpy, False); + free(seltag); } static void @@ -212,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) @@ -223,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