| 174 | // instances attached to subwindows are also shut down. |
| 175 | |
| 176 | static void DeleteWindow(Display *dpy, Window win, bool subOnly = false) |
| 177 | { |
| 178 | Window root, parent, *children = NULL; unsigned int n = 0; |
| 179 | |
| 180 | if(!subOnly) WINHASH.remove(dpy, win); |
| 181 | if(XQueryTree(dpy, win, &root, &parent, &children, &n) |
| 182 | && children && n > 0) |
| 183 | { |
| 184 | for(unsigned int i = 0; i < n; i++) DeleteWindow(dpy, children[i]); |
| 185 | _XFree(children); |
| 186 | } |
| 187 | } |
| 188 | |
| 189 | |
| 190 | xcb_void_cookie_t xcb_destroy_subwindows(xcb_connection_t *conn, |
no test coverage detected