replaced getproto with a saner function, now old-school artifacts of WM times in the early 90s completely disappeared, no punned pointer warning anymore ;)

This commit is contained in:
Anselm R. Garbe 2007-02-07 12:37:06 +01:00
parent 44ef3f5a07
commit 28ffff801b
5 changed files with 20 additions and 31 deletions

View file

@ -120,11 +120,26 @@ getclient(Window w) {
return NULL;
}
Bool
isprotodel(Client *c) {
int i, n;
Atom *protocols;
Bool ret = False;
if(XGetWMProtocols(dpy, c->win, &protocols, &n)) {
for(i = 0; !ret && i < n; i++)
if(protocols[i] == wmatom[WMDelete])
ret = True;
XFree(protocols);
}
return ret;
}
void
killclient(Arg *arg) {
if(!sel)
return;
if(sel->proto & PROTODELWIN)
if(isprotodel(sel))
sendevent(sel->win, wmatom[WMProtocols], wmatom[WMDelete]);
else
XKillClient(dpy, sel->win);
@ -159,7 +174,6 @@ manage(Window w, XWindowAttributes *wa) {
c->y = way;
}
updatesizehints(c);
c->proto = getproto(c->win);
XSelectInput(dpy, c->win,
StructureNotifyMask | PropertyChangeMask | EnterWindowMask);
XGetTransientForHint(dpy, c->win, &trans);