#include #include #include #include int close_window(Display *d, XID window) { XClientMessageEvent ev; memset(&ev, 0, sizeof(ev)); ev.type = ClientMessage; ev.display = d; ev.window = window; ev.format = 32; ev.message_type = XInternAtom(d, "WM_PROTOCOLS", False); ev.data.l[0] = XInternAtom(d, "WM_DELETE_WINDOW", False);; return XSendEvent(ev.display, ev.window, True, 0, (XEvent *) & ev); } int is_window_visible(Display *d, XID window) { XWindowAttributes xwa; if (!XGetWindowAttributes(d, window, &xwa)) return 0; return xwa.map_state == IsViewable; } int main(int argc, char **argv) { int i; Display *d; XID w; d = XOpenDisplay(NULL); if (!d) exit(1); for (i=1; i