通过xid关闭窗口

void dock_close_window(Window xid)
{
   Display *d = XOpenDisplay(NULL);
   Window root = DefaultRootWindow(d);

   Atom _NET_CLOSE_WINDOW = XInternAtom(d, "_NET_CLOSE_WINDOW", False);
   XEvent xev;
   xev.xclient.type = ClientMessage;
   xev.xclient.send_event = True;
   xev.xclient.window = xid;
   xev.xclient.message_type = _NET_CLOSE_WINDOW;
   xev.xclient.format = 32;
   XSendEvent(d, root, False, StructureNotifyMask | SubstructureNotifyMask, &xev);
   XCloseDisplay(d);
}