static void destroy(void *data) { struct window *window = data; unmanage(window); free(window); }
static void destroynotify(XEvent *e) { Client *c; XDestroyWindowEvent *ev = &e->xdestroywindow; if((c = getclient(ev->window))) unmanage(c); }
static void unmapnotify(XEvent *e) { Client *c; XUnmapEvent *ev = &e->xunmap; if((c = getclient(ev->window))) unmanage(c); }
static void cleanup(void) { close(STDIN_FILENO); while(stack) { resize(stack, True); unmanage(stack); } XUngrabKey(dpy, AnyKey, AnyModifier, root); XFreeCursor(dpy, cursor[CurNormal]); XFreeCursor(dpy, cursor[CurResize]); XFreeCursor(dpy, cursor[CurMove]); XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); XSync(dpy, False); }