/** Callback to kill a client after a confirm dialog. */ void KillClientHandler(ClientNode *np) { Assert(np); if(np == activeClient) { FocusNextStacked(np); } GrabServer(); JXKillClient(display, np->window); JXSync(display, True); UngrabServer(); RemoveClient(np); }
/** Destroy a swallow tray component. */ void Destroy(TrayComponentType *cp) { ClientProtocolType protocols; /* Destroy the window if there is one. */ if(cp->window) { JXReparentWindow(display, cp->window, rootWindow, 0, 0); JXRemoveFromSaveSet(display, cp->window); protocols = ReadWMProtocols(cp->window); if(protocols & PROT_DELETE) { SendClientMessage(cp->window, ATOM_WM_PROTOCOLS, ATOM_WM_DELETE_WINDOW); } else { JXKillClient(display, cp->window); } } }